はじめに
今回は社内の勉強会向けにハンズオン資料です。
毎週木曜日にAWS勉強会をしているのですが、前々回の話題に「S3 -> EventBridge -> SageMaker」が有り、EventBridge と SageMaker を使ったハンズオンを企画する事にしました。
ただ、SageMaker はサクッと 30 分の勉強会では、できそうにないので別の勉強会にしたいと思います。
今回は、AWS 初心者向けで「S3 -> EventBridge -> SNS」のサービスでハンズオンを行います。
- S3 : バケット作成
- EventBridge : S3のファイルアップロードをキャッチして、SNSへ通知
- SNS : アップロードされたファイルの情報をメールで通知
事前準備
- ハンズオン参加者は、AWS 勉強会用のユーザーグループに追加
ハンズオン
- 各追加リソースには、
- リソース名は、"サンプルのリソース名" + "_自分の名前"で登録
- 必ず"project"として、勉強会の名称を登録
- 「AWS 接続先アカウント」、「AWS リージョン」を 要確認!
Amazon S3
バケットの作成
- バケット作成画面
- バケット(左のメニューから) ->
バケットを作成
ボタン
- バケット(左のメニューから) ->
- バケット作成
- バケット名 : "サンプルのリソース名" + "_自分の名前"
- タグ - オプション
- Key = project Value = 勉強会の名称
-
バケットを作成
ボタン
-
- バケットにフォルダを作成
- バケット一覧から作成したバケットを選択
-
オブジェクト
タブ ->フォルダの作成
ボタン- フォルダ名 : sns
-
フォルダの作成
ボタン
Amazon SNS
トピックの作成
- トピックの作成画面
- トピック(左のメニューから) ->
トピックの作成
ボタン
- トピック(左のメニューから) ->
- トピックの作成
- 名前 : "サンプルのリソース名" + "_自分の名前"
- 表示名 : 名前と同じ
- タグ - オプション
- Key = project Value = 勉強会の名称
-
トピックの作成
ボタン
サブスクリプションの作成
- サブスクリプションの作成画面
- トピックの一覧から作成したトピックを選択
-
サブスクリプション
タブ ->サブスクリプションの作成
ボタン
- サブスクリプションの作成
- プロトコル : E メール
- エンドポイント : 自分のメールアドレス
確認メール
Amazon EventBridge
ルールの作成
- ルールの作成画面
- ルール(左のメニューから) ->
ルールの作成
ボタン
- ルール(左のメニューから) ->
- ルールの作成
- 名前 : "サンプルのリソース名" + "_自分の名前"
- 説明 : s3からsnsへのイベントブリッジ
- サンプルイベントタイプ : AWSイベント or EventBridgeパートナーイベント
- サンプルイベント : 記載しない
- 作成のメソッド : スキーマを使用する
- スキーマタイプ : スキーマレジストリからスキーマを選択する
- スキーマレジストリ : aws.events
- スキーマ : aws.s3@ObjectCreated
- モデル : 下記の項目を画像を参考に!
-
JSONでイベントパターンを生成する
ボタン
- JSON へ追記
"source": ["aws.s3"], "detail-type": ["Object Created"],
- JSON へ追加した結果
-
次へ
ボタン - ターゲットタイプ : AWSのサービス
- ターゲットを選択 : SNSトピック
- トピック : 上記で作成した SNS トピック
-
次へ
ボタン - タグ - オプション
- Key = project Value = 勉強会の名称
-
次へ
ボタン - 内容を確認して、
ルールを作成
ボタン
実行!
ファイルのアップロード
- ファイルのアップロード画面
- S3 -> バケット(左のメニューから) ->
汎用バケット
タブ -> 登録したバケット -
オブジェクト
タブ ->sns
フォルダ -
オブジェクト
タブ ->アップロード
ボタン
- S3 -> バケット(左のメニューから) ->
- ファイルのアップロード
-
ファイルの追加
ボタン -> ローカル PC からファイルを選択 -
アップロード
ボタン
-
メールの受信
登録したメールアドレスの受信ボックスを確認します。
1 分ぐらい待ってください。
・・・
・・・
・・・
待っても、受信されないんです。。。
Amazon S3 (追加設定)
- こんな設定があって、デフォルトでは OFF なんですね。。。
Amazon EventBridge に通知
再実行!
S3 の sns フォルダにアップロードしたファイルを一度削除して、再度アップロード。
登録したメールアドレスの受信ボックスを確認します。
下記のメールが受信されれば成功です!
※受信されるメールは、アップロードした S3 とアップロードしたファイルの内容が記載されてます。
そのため、ここではメール内容は控えます。
さらにハマった
正常に動作してないようなら、EventBridge を再確認してください。
私は、S3 のバケット名を記載する際に、S3 の画面(HTML)からコピーしてしまったため、下記画像の赤丸箇所に空白が含まれてました。。。
おわりに
- 当たり前ですが、実際に手を動かして作ってみるとイメージがはっきりしました
- コピーペーストには注意!!!
- S3 の EventBridge への通知は追加設定が必要ので注意!
- このボリュームなら、30 分でハンズオンが予定通りに終わりそう
事後報告
- IAMポリシーの設定に失敗
- 30分じゃ終わらなかった
- リソースを消すのに楽な方法は?登録したTagで削除したい
- リージョンの確認を忘れずに!
参考(感謝)