こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。
今回はAWS SQS,Lambda,SNS環境にS3を追加して、S3に何らかのデータがアップロードされた際にメールが通知される環境を構築していきたいと思います。
前回の記事は以下となります。
全体の流れは以下にまとめています。
最終的な構築イメージ
構築
S3の作成
バケットの作成を押下します。
以下の設定で作成していきます。基本的にデフォルトの設定から変更していません。
- バケットタイプ:汎用
- バケット名:qiita-s3-qiita
S3が作成されたことを確認します。Arnはこの後使いますので控えます。
SQSのアクセスポリシー編集
S3に紐づけたいSQSの管理画面に移動します。
アクセスポリシータブ内にあるアクセスポリシー(アクセス許可)を編集していきます。
以下の内容に修正して保存します。
{
"Version": "2012-10-17",
"Id": "__default_policy_ID",
"Statement": [
{
"Sid": "__owner_statement",
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": "sqs:SendMessage",
"Resource": "★SQSのArn★",
"Condition": {
"ArnLike": {
"aws:SourceArn": "★S3のArn★"
}
}
}
]
}
S3のイベント通知設定
S3のプロパティタブにイベント通知の欄があります。
イベント通知の作成を押下します。
以下の設定で保存します。
- イベント名:call_qiita_sns
- イベントタイプ:オブジェクトの作成:PUT
- 送信先:SQSキュー
- SQSキューを特定:SQSキューから選択する
- SQSキュー:qiita_sqs
テスト
S3バケットにデータをアップロードすることでメール通知の処理が走るかを確認してみます。
今回作成したバケットを選択し、アップロードを押下します。
ファイルを追加ボタンを押下するとローカルのexplorerが立ち上がりますので、任意のデータを選択します。
アップロードを押下します。
アップロードが成功していることを確認します。
SNSで登録したメールアドレス宛に通知が飛んでいれば成功です。