はっさんブログ

やっていき検証

初めてのS3、SQSの連携設定

スポンサーリンク

ゴール

S3にファイルアップロードしたら、イベント検知してSQSにenqueueされること

この辺をするための布石です。 dev.classmethod.jp

S3でバケットを作成

s3のコンソールに行きます。

f:id:usgitan:20170617092037p:plain

バケットを作成ボタンから、適当な名前をつけて作成ボタンを押します。

f:id:usgitan:20170617092049p:plain

f:id:usgitan:20170617092609p:plain

作成されました。一旦ここまで!

SQSで任意のS3バケットを指定する

SQSのコンソールに行きます。

f:id:usgitan:20170617094523p:plain

キューを作成ボタンを押し、適当な名前をつけ、メッセージ受信待機時間を20秒に設定した後*1、作成ボタンを押します。

f:id:usgitan:20170617094606p:plain

そしたら、作成したキューのチェックボックスをクリックしてください。
次に下のタブにあるアクセス許可から、許可の追加をします。
設定画面で以下の設定をして、条件の追加、保存をしてください。

プリンシバル...全員にチェック
アクション...SendMessage

条件の追加から

限定条件...None
条件...ArnEquals
キー...aws:SourceArn
値...arn:aws:s3:::<s3のバケット名> (今回の場合、s3-sqs-test)

f:id:usgitan:20170617095344p:plain

これでSQS側の設定は終了です。
S3側に再度移ります。

S3側でイベントの登録

作成したバケットをクリックし、タブの「プロパティ」を見てください。
詳細設定の中に「Event」があるので、クリック、通知の追加を押します。

f:id:usgitan:20170617100420p:plain

ここにSQSへenqueueする設定があったんですね。
適当な名前、PUTと投稿にチェック、送信先にSQSキューを選択、SQSに作成したキューの名前を選択して保存します。

f:id:usgitan:20170617100512p:plain

これで設定は終了です。
実際にファイルアップロードして、SQSにenqueueしているか確認しましょう。

確認

3Sからファイルアップロードし、SQSのコンソールで「利用可能なメッセージ」が1以上になっていればOKです!

f:id:usgitan:20170617101546p:plain

(1つあげたら1)

*1:キューからメッセージを取得する際に、メッセージが無くても最大 20 秒まで待つようになります。