LoginSignup
0
1

AWS SQS/Lambda/SNSにS3を連携し、メール通知を行ってみる[03]

Last updated at Posted at 2024-05-01

こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。

今回はAWS SQS,Lambda,SNS環境にS3を追加して、S3に何らかのデータがアップロードされた際にメールが通知される環境を構築していきたいと思います。

前回の記事は以下となります。

全体の流れは以下にまとめています。

最終的な構築イメージ

以下環境を作っていきます。今回はS3を実装していきます。
aws-django01-ページ6.drawio.png

構築

S3の作成

バケットの作成を押下します。
image.png
以下の設定で作成していきます。基本的にデフォルトの設定から変更していません。

  • バケットタイプ:汎用
  • バケット名:qiita-s3-qiita

screencapture-ap-northeast-1-console-aws-amazon-s3-bucket-create-2024-05-01-20_26_15.png
S3が作成されたことを確認します。Arnはこの後使いますので控えます。
2024050114.png

SQSのアクセスポリシー編集

S3に紐づけたいSQSの管理画面に移動します。
アクセスポリシータブ内にあるアクセスポリシー(アクセス許可)を編集していきます。
2024050115.png
以下の内容に修正して保存します。

{
  "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のプロパティタブにイベント通知の欄があります。
イベント通知の作成を押下します。
image.png
以下の設定で保存します。

  • イベント名:call_qiita_sns
  • イベントタイプ:オブジェクトの作成:PUT
  • 送信先:SQSキュー
  • SQSキューを特定:SQSキューから選択する
  • SQSキュー:qiita_sqs

screencapture-ap-northeast-1-console-aws-amazon-s3-bucket-qiita-s3-qiita-property-notification-create-2024-05-01-20_41_04.png
イベント通知に表示されていることを確認します。
image.png

テスト

S3バケットにデータをアップロードすることでメール通知の処理が走るかを確認してみます。
今回作成したバケットを選択し、アップロードを押下します。
image.png
ファイルを追加ボタンを押下するとローカルのexplorerが立ち上がりますので、任意のデータを選択します。
アップロードを押下します。
image.png
アップロードが成功していることを確認します。
image.png
SNSで登録したメールアドレス宛に通知が飛んでいれば成功です。
image.png

0
1
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
0
1