LoginSignup
31
28

More than 3 years have passed since last update.

Lambdaを使ってAmazon SNSからメールを飛ばしてみた

Posted at

なりゆき

lambdaでSNS叩いてメール送りたいんじゃ~~
今時メールかよ・・・と思いつつ

設定方法

SNSトピック作成

SNSトピック作成ページを開き、名前を入力後にトピックの作成を押下する。
image.png

サブスクリプション作成

サブスクリプションの作成を押下する。
※次の画面でARNを選択するので覚えておくこと。
image.png

下記入力項目を入力し、サブスクリプションの作成を押下する。

トピックARN プロトコル エンドポイント
先ほどのARN Eメール 受信メールアドレス

image.png

サブスクリプション承認

エンドポイントに指定したメールアドレスに確認メールが送られてくるので、
Confirm subscriptionを押下する。
image.png

承認完了メッセージが表示される。
image.png

ステータスが保留中から確認済みになっていることを確認する。
image.png
image.png

Lambda関数作成

Lambda関数作成ウィザードを開く。

関数名 ランタイム 実行ロール ロール名 ポリシーテンプレート
SendMail Python3.7 AWSポリシーテンプレートから新しいロールを作成 SendMailUsingSNS Amazon SNS 発行ポリシー

image.png

コードを入力して保存ボタンを押下する。
image.png

コード

※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してみた

31
28
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
31
28