やることはタイトルまんま。まぁ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、すなわちファイル名、ファイルの中身まではわからない。まぁ必ずしもテキストファイルじゃないしそりゃそうか。
以上。
コメント