⚡
AWS Event-Driven Workshopをやってみた
作成背景
もくもく会のアウトプットです。
教材
実施背景
イベント駆動は聞いたことも、AW S3 PUT時にLambdaを起動して他サービスに連携などは実装経験ありますが、
EventBridgeを利用して実装した経験がなかったのでいい機会だと思って実施します。
実際にやってみた
環境作成
以下のリージョンについては、CloudFormationのテンプレートが用意されています。
- US East (N. Virginia) us-east-1
- US West (Oregon) us-west-2
- Europe (Ireland) eu-west-1
- Europe (Frankfurt) eu-central-1
- Asia Pacific (Singapore) ap-southeast-1
- Asia Pacific (Sydney) ap-southeast-2
- Asia Pacific (Tokyo) ap-northeast-1
実行すると、このWorkshopで利用するEvent発火用の専用ページとユーザ、パスワードがCfnから出力されます。
EventBridge上でRule定義
EventBridgeに対してEvent Publish
{
"version": "0",
"id": "4439abea-1826-0bfc-5e6c-a30c34c12b4c",
"detail-type": "Order Notification",
"source": "com.aws.orders",
"account": "******",
"time": "2021-11-18T12:27:44Z",
"region": "ap-northeast-1",
"resources": [],
"detail": {
"category": "lab-supplies",
"value": 415,
"location": "eu-west"
}
}
環境のクリーンナップ
CloudFormationでStackをDeleteすることでネスト生成されたリソースも合わせて削除します。
まとめ
まずはベーシックなイベントを受け取って、CloudWatch Logsへ通知するRulesを作成しました。
また、他のAWSワークショップの多くは手を動かすためのリソースを予め作るパターンはありますが、
今回のように手を動かして、イベントを発火するための画面を別に作成するパターンは個人的に初めてでした。
今回1時間弱で実施してみるということもあり、まずはシンプルに実装してみました。
このワークショップはこのあとKinesis Firehoseにも通知をS3へPutする仕組みを追加する手順が追加されていくので、
また後日続きを実施しようと思います。
なお、CloudFormationで作成しているためワークショップを終了したあとはスタックを削除することでリソースも一斉に削除されるので、
削除漏れは起きづらいこともいいですね。
Discussion