2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWS サクッと EventBridge のハンズオン。EventBridge が動かない、、、

Last updated at Posted at 2024-10-26

image.png

はじめに

今回は社内の勉強会向けにハンズオン資料です。

毎週木曜日にAWS勉強会をしているのですが、前々回の話題に「S3 -> EventBridge -> SageMaker」が有り、EventBridge と SageMaker を使ったハンズオンを企画する事にしました。
ただ、SageMaker はサクッと 30 分の勉強会では、できそうにないので別の勉強会にしたいと思います。

今回は、AWS 初心者向けで「S3 -> EventBridge -> SNS」のサービスでハンズオンを行います。

  1. S3 : バケット作成
  2. EventBridge : S3のファイルアップロードをキャッチして、SNSへ通知
  3. SNS : アップロードされたファイルの情報をメールで通知

事前準備

  • ハンズオン参加者は、AWS 勉強会用のユーザーグループに追加

ハンズオン

  • 各追加リソースには、
    • リソース名は、"サンプルのリソース名" + "_自分の名前"で登録
    • 必ず"project"として、勉強会の名称を登録
  • AWS 接続先アカウント」、「AWS リージョン」を 要確認!

Amazon S3

バケットの作成

  1. バケット作成画面
    • バケット(左のメニューから) -> バケットを作成ボタン
  2. バケット作成
    • バケット名 : "サンプルのリソース名" + "_自分の名前"
    • タグ - オプション
      • Key = project Value = 勉強会の名称
    • バケットを作成ボタン
    • バケットにフォルダを作成
    • バケット一覧から作成したバケットを選択
    • オブジェクトタブ -> フォルダの作成ボタン
      • フォルダ名 : sns
      • フォルダの作成ボタン

Amazon SNS

トピックの作成

  1. トピックの作成画面
    • トピック(左のメニューから) -> トピックの作成ボタン
  2. トピックの作成
    • 名前 : "サンプルのリソース名" + "_自分の名前"
    • 表示名 : 名前と同じ
    • タグ - オプション
      • Key = project Value = 勉強会の名称
    • トピックの作成ボタン

サブスクリプションの作成

  1. サブスクリプションの作成画面
    • トピックの一覧から作成したトピックを選択
    • サブスクリプションタブ -> サブスクリプションの作成ボタン
  2. サブスクリプションの作成
    • プロトコル : E メール
    • エンドポイント : 自分のメールアドレス

確認メール

  • サブスクリプションに登録したメールアドレスで下記が受信されます
    image.png
  • (時間調整)SNS から自分でメッセージを発行してみる
    • 登録したトピック -> メッセージの発行ボタン

Amazon EventBridge

ルールの作成

  1. ルールの作成画面
    • ルール(左のメニューから) -> ルールの作成ボタン
  2. ルールの作成
    • 名前 : "サンプルのリソース名" + "_自分の名前"
    • 説明 : s3からsnsへのイベントブリッジ
    • サンプルイベントタイプ : AWSイベント or EventBridgeパートナーイベント
    • サンプルイベント : 記載しない
    • 作成のメソッド : スキーマを使用する
    • スキーマタイプ : スキーマレジストリからスキーマを選択する
    • スキーマレジストリ : aws.events
    • スキーマ : aws.s3@ObjectCreated
    • モデル : 下記の項目を画像を参考に!
      • ObjectCreated -> detail -> bucket -> name
        image.png
      • ObjectCreated -> detail -> object -> key
        image.png
    • JSONでイベントパターンを生成するボタン
      image.png
    • JSON へ追記
      "source": ["aws.s3"],
      "detail-type": ["Object Created"],
      
    • JSON へ追加した結果
      image.png
    • 次へボタン
    • ターゲットタイプ : AWSのサービス
    • ターゲットを選択 : SNSトピック
    • トピック : 上記で作成した SNS トピック
    • 次へボタン
    • タグ - オプション
      • Key = project Value = 勉強会の名称
    • 次へボタン
    • 内容を確認して、ルールを作成ボタン

実行!

ファイルのアップロード

  1. ファイルのアップロード画面
    • S3 -> バケット(左のメニューから) -> 汎用バケットタブ -> 登録したバケット
    • オブジェクトタブ -> snsフォルダ
    • オブジェクトタブ -> アップロードボタン
  2. ファイルのアップロード
    • ファイルの追加ボタン -> ローカル PC からファイルを選択
    • アップロードボタン

メールの受信

登録したメールアドレスの受信ボックスを確認します。
1 分ぐらい待ってください。
・・・
・・・
・・・
待っても、受信されないんです。。。

Amazon S3 (追加設定)

  • こんな設定があって、デフォルトでは OFF なんですね。。。

Amazon EventBridge に通知

  • S3 -> バケット -> 登録したバケット -> プロパティタブ -> Amazon EventBridge
  • Amazon EventBridge
    • オフ -> オン
      image.png
    • 変更の保存ボタン

再実行!

S3 の sns フォルダにアップロードしたファイルを一度削除して、再度アップロード。
登録したメールアドレスの受信ボックスを確認します。
下記のメールが受信されれば成功です!

※受信されるメールは、アップロードした S3 とアップロードしたファイルの内容が記載されてます。
 そのため、ここではメール内容は控えます。

さらにハマった

正常に動作してないようなら、EventBridge を再確認してください。
私は、S3 のバケット名を記載する際に、S3 の画面(HTML)からコピーしてしまったため、下記画像の赤丸箇所に空白が含まれてました。。。
image.png

おわりに

  • 当たり前ですが、実際に手を動かして作ってみるとイメージがはっきりしました
  • コピーペーストには注意!!!
  • S3 の EventBridge への通知は追加設定が必要ので注意!
  • このボリュームなら、30 分でハンズオンが予定通りに終わりそう

事後報告

  • IAMポリシーの設定に失敗
  • 30分じゃ終わらなかった
  • リソースを消すのに楽な方法は?登録したTagで削除したい
  • リージョンの確認を忘れずに!

参考(感謝)

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?