Amazon SNS에 AWS Lambda 사용 - AWS Lambda

Amazon SNS에 AWS Lambda 사용

Lambda 함수를 사용하여 Amazon Simple Notification Service(Amazon SNS) 알림을 처리할 수 있습니다. Amazon SNS는 Lambda 함수를 주제에 전송된 메시지에 대한 대상으로 지원합니다. 동일한 계정 또는 다른 AWS 계정의 주제에 함수를 등록할 수 있습니다.

Amazon SNS는 메시지 및 메타데이터를 포함하는 이벤트와 비동기적으로 함수를 호출합니다.

예 Amazon SNS 메시지 이벤트
{ "Records": [ { "EventVersion": "1.0", "EventSubscriptionArn": "arn:aws:sns:us-east-2:123456789012:sns-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "EventSource": "aws:sns", "Sns": { "SignatureVersion": "1", "Timestamp": "2019-01-02T12:45:07.000Z", "Signature": "tcc6faL2yUC6dgZdmrwh1Y4cGa/ebXEkAi6RibDsvpi+tE/1+82j...65r==", "SigningCertUrl": "https://sns.us-east-2.amazonaws.com/SimpleNotificationService-ac565b8b1a6c5d002d285f9598aa1d9b.pem", "MessageId": "95df01b4-ee98-5cb9-9903-4c221d41eb5e", "Message": "Hello from SNS!", "MessageAttributes": { "Test": { "Type": "String", "Value": "TestString" }, "TestBinary": { "Type": "Binary", "Value": "TestBinary" } }, "Type": "Notification", "UnsubscribeUrl": "https://sns.us-east-2.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-2:123456789012:test-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "TopicArn":"arn:aws:sns:us-east-2:123456789012:sns-lambda", "Subject": "TestInvoke" } } ] }

비동기 호출을 위해 Lambda는 메시지를 대기열에 추가하고 재시도를 처리합니다. Amazon SNS가 Lambda에 도달할 수 없거나 메시지가 거부되는 경우, Amazon SNS는 몇 시간 동안 간격을 늘리면서 재시도합니다. 자세한 내용은 Amazon SNS FAQ에서 안정성을 참조하세요.

Lambda에 교차 계정 Amazon SNS 전송을 수행하려면 Lambda 함수를 호출할 수 있는 권한을 Amazon SNS에 부여해야 합니다. 따라서 Amazon SNS는 AWS 계정과 Lambda 함수가 Amazon SNS 주제를 구독할 수 있도록 허용해야 합니다. 예를 들어, Amazon SNS 주제가 계정 A에 있고 Lambda 함수가 계정 B에 있으면 두 계정 모두 다른 리소스에 대한 액세스 권한을 다른 계정에 부여해야 합니다. 교차 계정 권한 설정을 위한 모든 옵션을 AWS Management Console에서 사용할 수 있는 것은 아니므로, 설정 시 AWS Command Line Interface(AWS CLI)을(를) 사용해야 합니다.

자세한 내용은 Amazon Simple Notification Service 개발자 안내서에서 Lambda 함수로 팬아웃을 참조하세요.

Amazon SNS 이벤트에 대한 입력 유형

Java, .NET, Go의 Amazon SNS 이벤트에 대한 입력 유형 예제는 AWS GitHub 리포지토리에서 다음을 참조하세요.