目次
目的
AWSのLambdaからsnsでメール送信するメモです。
コードはPythonです。
snsを設定する
1.snsでメールを送信する設定を行います。
関数を作成する
import boto3
sns = boto3.client('sns')
def lambda_handler(event, context):
str1 = "hello"
str2 = "world"
message1 = "test - %s and\n %s " %(str1,str2)
response = sns.publish(
TopicArn = 'arn:aws:sns:ap-northeast-1:999999999999:test-sns3',
Subject = 'test-title1',
Message = message1,
)
return response
7-9行目は、メールの本文です。
変数に値をセットしています。改行もあります。
11行目のpublishでメールを送信します。
12行目は、AWSのアカウント(999)とSNSのトピック(test-sns)を指定しています。
13行目は、メールタイトルです。
14行目は、メール本文です。
関数にsnsを操作する権限を付与する
この関数はsnsを操作するのでその権限を付与します。
※関数作成前にロールを作成しておいて、関数作成時に作成したロールを付与しても可です。
1.作成した関数の画面で、「設定」>「アクセス権限」>実行ロールのロール名のリンクをクリックします。IAMのロールの画面に遷移します。
2.「許可」>「許可を追加」>「ポリシーをアタッチ」をクリックします。
3.snsで検索し、AmazonSNSFullAccessにチェックを入れ、「許可を追加」をクリックするとsnsフルアクセスのポリシーが追加されます。
送信するメールイメージ
lambdaを実行すると以下のようなメールが送信されます。
関連の記事
AWS Lambdaでhello worldを出力する(Python)
AWS LambdaからS3にファイルを書き込む/読み込む