S3に指定のバケットにファイル生成したらSQSに通知

やることはタイトルまんま。まぁAWSのドキュメント見たらあるのだが、けっこうあちこちに情報も散らばっていて、色々と見て回ることになったので、参考URLを残しつつメモ。Webコンソールから操作すること前提。

スポンサーリンク

SQS側の設定

S3 バケットのイベント通知を有効化および設定する方法 – Amazon Simple Storage Service

キューを作成し、「アクセス許可」タブより「ポリシードキュメントの編集(高度)」より以下のように編集。

{
  "Version": "2012-10-17",
  "Id": "適当なID",
  "Statement": [
    {
      "Sid": "example-statement-ID",
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "SQS:SendMessage",
      "Resource": "作成したキューのARN",
      "Condition": {
        "ArnLike": {
          "aws:SourceArn": "arn:aws:s3:*:*:通知元のS3のバケット名"
        }
      }
    }
  ]
}

こういう編集するところを明示する時、日本語使うと便利だよね。

S3側の設定

チュートリアル例: バケットを通知用に設定する (メッセージの宛先: SNS トピックおよび SQS キュー) – Amazon Simple Storage Service

Amazon S3 イベント通知の設定 – Amazon Simple Storage Service

Web通知元にしたいバケットにアクセスして、「プロパティ」タブより下部の詳細設定の「イベント」を選択、「通知の追加」。

適当な「名前」をつけて、「イベント」は「すべてのオブジェクト作成イベント」、プレフィックス、サフィックスは任意。送信先として、作成した受け側のSQSのキューを選択。で、「保存」。この時権限(上のSQSでの設定)がないとエラーが出る。

通知の内容

この状態でS3にてファイルを作成すると、その内容がSQSに通知される。ちなみに通知内容は、時間とObjectのkey、すなわちファイル名、ファイルの中身まではわからない。まぁ必ずしもテキストファイルじゃないしそりゃそうか。

以上。

関連コンテンツ

関連記事

スポンサーリンク

カテゴリーaws

コメントを残す

メールアドレスが公開されることはありません。