Help us understand the problem. What is going on with this article?

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

なりゆき

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

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away