Lambdaを使ってAmazon SNSからメールを飛ばしてみた
なりゆき
lambdaでSNS叩いてメール送りたいんじゃ~~
今時メールかよ・・・と思いつつ
設定方法
SNSトピック作成
SNSトピック作成ページを開き、名前を入力後にトピックの作成を押下する。
サブスクリプション作成
サブスクリプションの作成を押下する。
※次の画面でARNを選択するので覚えておくこと。
下記入力項目を入力し、サブスクリプションの作成を押下する。
トピックARN | プロトコル | エンドポイント |
---|---|---|
先ほどのARN | Eメール | 受信メールアドレス |
サブスクリプション承認
エンドポイントに指定したメールアドレスに確認メールが送られてくるので、
Confirm subscriptionを押下する。
Lambda関数作成
Lambda関数作成ウィザードを開く。
関数名 | ランタイム | 実行ロール | ロール名 | ポリシーテンプレート |
---|---|---|---|---|
SendMail | Python3.7 | AWSポリシーテンプレートから新しいロールを作成 | SendMailUsingSNS | Amazon SNS 発行ポリシー |
コード
※TOPIC_ARNは各自のARNを入力
import boto3
def lambda_handler(event, context):
client = boto3.client('sns')
TOPIC_ARN = 'arn:aws:sns:*:*:*'
msg = 'Pythonからの\nテストメール'
subject = 'ててて!ててて!て~て~♪'
response = client.publish(
TopicArn = TOPIC_ARN,
Message = msg,
Subject = subject
)
return response
終わり
あとは適当にトリガーを設定したらメールが飛びます。
lambdaの中で色々と呼び出して処理した結果をメールに添付することもできます。
参考情報
boto3公式ドキュメント
client.publish
クラスメソッドさん
boto3を使ってAmazon SNSへpublishしてみた
Author And Source
この問題について(Lambdaを使ってAmazon SNSからメールを飛ばしてみた), 我々は、より多くの情報をここで見つけました https://qiita.com/tsumita7/items/bbafba094db5794d0374著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .