Lambda 関数を使用して Amazon SNS トピックにメッセージを発行する方法を教えてください。

所要時間1分
0

AWS Lambda 関数から Amazon Simple notification Service (Amazon SNS) トピックにメッセージを発行したいと考えています。

解決方法

次の手順に従って、Lambda 関数を使用し Amazon SNS トピックにメッセージを送信してください。

**メモ:**この記事の例では Python ランタイムを使用していますが、お好みの Lambda ランタイムを使用できます。

1. Amazon SNS トピックを作成します

2. Lambda 関数を作成します

3. Lambda 関数から、Lambda 実行ロールに次のような SNS メッセージを公開する権限があることを確認します。

メモ:地域アカウント番号トピック名を変数に置き換えます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "PublishSNSMessage",
      "Effect": "Allow",
      "Action": "sns:Publish",
      "Resource": "arn:aws:sns:<your-region>:<your-account-number>:<your-topic-name>"
    }
  ]
}

4. 「コード」タブを選択します。次に、「コードソース」で、「Publish Boto3」 アクションの次のコードをコピーしてコードエディターに貼り付けます。

import json
import boto3
client = boto3.client('sns')
def lambda_handler(event, context):
   response = client.publish(TopicArn='arn:aws:sns:<region>:<account-number>:<topic-name>',Message="Test message")
   print("Message published")
   return(response)

5. Lambda 関数をテストしてください

Lambda 関数が Amazon Virtual Private Cloud (Amazon VPC) に接続されている場合は、次のいずれかを実行します。

Lambda 関数にインターネットアクセスが必要な場合は、必ずインターネットアクセスを許可していることを確認してください。詳細については、「Amazon VPC に接続されている Lambda 関数にインターネットアクセスを許可する方法」を参照してください。

-または-

プライベートネットワークの場合は、同じ VPC 内に Amazon SNS 用の Amazon VPC エンドポイントを作成します。詳細については、「Amazon SNS 用の Amazon VPC エンドポイントの作成」を参照してください。

関連情報

Lambda 関数を Amazon SNS トピックにサブスクライブしようとすると認証エラーが発生するのはなぜですか?

AWS公式
AWS公式更新しました 2年前
コメントはありません

関連するコンテンツ