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-1: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-1.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-1.amazonaws.com/?Action=Unsubscribe&SubscriptionArn=arn:aws:sns:us-east-1:123456789012:test-lambda:21be56ed-a058-49f5-8c98-aedd2564c486", "TopicArn":"arn:aws:sns:us-east-1:123456789012:sns-lambda", "Subject": "TestInvoke" } } ] }

非同期呼び出しの場合、Lambda はそのメッセージをキューに入れ、再試行を処理します。Amazon SNS が Lambda に到達できない場合、またはメッセージが拒否される場合、Amazon SNS は、数時間にわたって間隔を増やして再試行します。詳細については、Amazon SNS のよくある質問の中の信頼性を参照してください。

Lambda へのクロスアカウント Amazon SNS 配信を実行するには、Amazon SNS が Lambda 関数を呼び出すことを承認する必要があります。次に、Amazon SNS は、AWS アカウントが Lambda 関数を使用して Amazon SNS トピックをサブスクライブすることを許可します。たとえば、Amazon SNS トピックがアカウント A にあり、Lambda 関数がアカウント B にある場合は、それぞれのリソースにアクセスできるように、両方のアカウントにアクセス権限を付与する必要があります。クロスアカウント権限を設定するためのすべてのオプションが AWS Management Console から利用できるわけではないため、設定には AWS Command Line Interface (AWS CLI) を使用する必要があります。

詳細については、Amazon Simple Notification Service デベロッパーガイドFanout to Lambda functions を参照してください。

Amazon SNS イベントの入力タイプ

Java、.NET、Go の Amazon SNS イベントの入力タイプの例については、 AWS GitHubリポジトリで以下を参照してください。