AWS Lambda 함수에서 Amazon Simple Notification Service(Amazon SNS) 주제에 메시지를 게시하고 싶습니다.
해결 방법
다음 단계에 따라 Lambda 함수를 사용하여 Amazon SNS 주제에 메시지를 전송하십시오.
참고: 이 문서의 예에서는 Python 런타임을 사용하지만 원하는 Lambda 런타임을 사용할 수도 있습니다.
다음 단계를 완료하십시오.
-
Amazon SNS 콘솔을 엽니다.
-
Amazon SNS 주제를 만듭니다.
-
세부 정보 페이지에서 이후 단계에서 사용할 Amazon 리소스 이름(ARN)을 복사합니다.
-
Lambda 콘솔을 엽니다.
-
Lambda 함수를 만듭니다.
-
Lambda Functions(함수) 페이지에서 Code(코드) 탭을 선택합니다. 그런 다음, Code source(코드 소스)에서 boto3 게시 작업에 대한 다음 코드를 복사하여 Code Editor에 붙여넣습니다.
import json
import boto3
client = boto3.client('sns')
def lambda_handler(event, context):
response = client.publish(TopicArn='arn:aws:sns:your-sns-topic-arn',Message="Test message")
print("Message published")
return(response)
참고: your-sns-topic-arn을 이전 단계에서 복사한 Amazon SNS 주제 ARN으로 바꾸십시오.
-
Deploy(배포)를 선택합니다.
-
Configuration(구성) 탭을 선택하고 Permissions(권한)를 선택합니다.
-
Role name(역할 이름)을 선택하고 Add permissions(권한 추가)를 선택한 후 Create inline policy(인라인 정책 생성)를 선택합니다.
-
JSON 탭을 선택하고 다음과 같은 AWS Identity and Access Management(IAM) 정책을 입력합니다.
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublishSNSMessage",
"Effect": "Allow",
"Action": "sns:Publish",
"Resource": "arn:aws:sns:your-sns-topic-arn"
}
]
}
참고: your-sns-topic-arn을 이전 단계에서 복사한 Amazon SNS 주제 ARN으로 바꾸십시오.
11. Next(다음)를 선택한 후 Create policy(정책 생성)을 선택합니다.
Lambda 함수가 Amazon Virtual Private Cloud(Amazon VPC)에 연결되어 있는 경우 다음 중 하나를 수행하십시오.
관련 정보
내 Amazon SNS 주제에 Lambda 함수를 구독하려고 할 때 권한 부여 오류가 발생하는 이유는 무엇입니까?