Using AWS Lambda with Amazon SNS - AWS Lambda

Using AWS Lambda with Amazon SNS

Lambda 함수를 사용하면 Amazon Simple Notification Service 알림을 처리할 수 있습니다. 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 전송을 수행하려면 Amazon SNS에서 호출할 Lambda 함수를 승인해야 합니다. 이에 대해 Amazon SNS는 Lambda 계정이 Amazon SNS 주제에 등록할 수 있게 허용해야 합니다. 예를 들어, Amazon SNS 주제가 계정 A에 있고 Lambda 함수가 계정 B에 있으면 두 계정 모두 다른 리소스에 대한 액세스 권한을 다른 계정에 부여해야 합니다. 교차 계정 권한 설정을 위한 모든 옵션을 AWS 콘솔에서 사용할 수 있는 것은 아니기 때문에, AWS CLI를 사용하여 전체 프로세스를 설정합니다.

자세한 정보는 Amazon Simple Notification Service 개발자 안내서Amazon SNS 알림을 사용하여 Lambda 함수 호출을 참조하십시오.