目的
- S3のputをトリガーにSNSでメール通知を行う
本題
SNSトピックを作成
SNSコンソールを開き、トピックを押下します。
トピックの作成を押下し、トピックの作成をしていきます。
名前:TestTopic
表示名:TestTopic
他の設定はデフォルトで大丈夫です。
トピックの作成を押下します。
作成が完了したらトピックのARNを控えておきます。
サブスクリプション設定
先ほど作成したトピックの詳細画面で「サブスクリプションの作成」を押下します。
サブスクリプションの設定をしていきます。
プロトコル:Eメール
エンドポイント:通知先のメールアドレス
サブスクリプションの作成を押下するとサブスクリプションを許可するメールが届きます。
本文内のリンクを押下するとメールアドレスがSNSトピックに登録されます。
S3イベントの作成
S3コンソールページからS3バケットを作成します。
作成時の設定は全てデフォルトで大丈夫です。
SNSトピックアクセスポリシーを編集する
SNSコンソールページに戻ります。
先ほど作成したトピックを選択し、編集を押下します。
アクセスポリシー欄を表示します。
表示されているバケットポリシーを更新します。
SNSトピックARNとバケット名は作成したものに変更してください。
{ "Version": "2008-10-17", "Id": "__default_policy_ID", "Statement": [ { "Sid": "__default_statement_ID", "Effect": "Allow", "Principal": { "AWS": "*" }, "Action": [ "SNS:GetTopicAttributes", "SNS:SetTopicAttributes", "SNS:AddPermission", "SNS:RemovePermission", "SNS:DeleteTopic", "SNS:Subscribe", "SNS:ListSubscriptionsByTopic", "SNS:Publish", "SNS:Receive" ], "Resource": "<SNSトピックのARN>", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:s3:*:*:<バケット名>" } } } ] }
変更の保存を押下します。
S3イベントを作成
S3コンソールページに戻ります。
作成したバケットの詳細画面でプロパティタブを押下します。
詳細設定のイベントを押下し、通知の追加をします。
名前:SNSPut
イベント:PUT
送信先:SNSトピック
SNS:作成したトピック
設定が完了したら保存を押下します。
動作確認
作成したS3バケットにファイルをアップロードします。
アップロードが成功したらSNSからメールが通知されます。