なりゆき
lambdaでSNS叩いてメール送りたいんじゃ~~
今時メールかよ・・・と思いつつ
設定方法
SNSトピック作成
SNSトピック作成ページを開き、名前を入力後にトピックの作成を押下する。
サブスクリプション作成
サブスクリプションの作成を押下する。
※次の画面でARNを選択するので覚えておくこと。
下記入力項目を入力し、サブスクリプションの作成を押下する。
トピックARN | プロトコル | エンドポイント |
---|---|---|
先ほどのARN | Eメール | 受信メールアドレス |
サブスクリプション承認
エンドポイントに指定したメールアドレスに確認メールが送られてくるので、
Confirm subscriptionを押下する。
Lambda関数作成
Lambda関数作成ウィザードを開く。
関数名 | ランタイム | 実行ロール | ロール名 | ポリシーテンプレート |
---|---|---|---|---|
SendMail | Python3.7 | AWSポリシーテンプレートから新しいロールを作成 | SendMailUsingSNS | Amazon SNS 発行ポリシー |
コード
※TOPIC_ARNは各自のARNを入力
lambda_function.py
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してみた