AWSで作るはじめてのETL【EventBridge】
概要
特定の条件でワークフローを実行するEventBridgeとEventBridgeの権限を管理するIAMロールを作成します。
IAMロール作成
一覧よりIAMをクリック。

ロール作成

信頼されたエンティティを選択
- 信頼されたエンティティタイプ:
カスタム信頼ポリシー
カスタム信頼ポリシーを下記のように設定する。
json
{
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"sts:AssumeRole"
],
"Effect": "Allow",
"Principal": {
"Service": [
"events.amazonaws.com"
]
}
}
]
}
許可を追加
AWSStepFunctionsFullAccessにチェックを入れて次へ

ロール設定
下記のように入力し作成。
ロール名: role-[自分の名前]-[番号]-eventbridge


EventBridge
EventBridge遷移

ルールを作成

ルール設定
名前: rule-[自分の名前]-[番号]-users-created
それ以外はそのまま

イベントパターンを構築
作成のメソッド: カスタムパターン (JSON エディタ) を選択し、下記を設定
json
{
"source": ["aws.s3"],
"detail-type": ["Object Created"],
"detail": {
"bucket": {
"name": ["s3-[自分の名前]-[番号]-datalake"]
},
"object": {
"key": [{
"prefix": "users/"
}]
}
}
}
ターゲットを選択
ターゲットタイプ: AWS のサービス
ターゲットを選択: Step Functions ステートマシン
ステートマシン: sfn-[自分の名前]-[番号]-object-import
実行ロール: 既存のロールを使用を選択しrole-[自分の名前]-[番号]-eventbridge

タグ
変えずに次へ

作成

ルール作成 その他
「ルールを作成」->「作成」を繰り返し、同様にして下記EventBridgeを作成する
rule-[自分の名前]-[番号]-products-createdrule-[自分の名前]-[番号]-orders-createdrule-[自分の名前]-[番号]-order_items-createdrule-[自分の名前]-[番号]-weather-created
なお、それぞれのイベントパターンは下記の通り
products
json
{
"source": ["aws.s3"],
"detail-type": ["Object Created"],
"detail": {
"bucket": {
"name": ["s3-[自分の名前]-[番号]-datalake"]
},
"object": {
"key": [{
"prefix": "products/"
}]
}
}
}orders
json
{
"source": ["aws.s3"],
"detail-type": ["Object Created"],
"detail": {
"bucket": {
"name": ["s3-[自分の名前]-[番号]-datalake"]
},
"object": {
"key": [{
"prefix": "orders/"
}]
}
}
}order_items
json
{
"source": ["aws.s3"],
"detail-type": ["Object Created"],
"detail": {
"bucket": {
"name": ["s3-[自分の名前]-[番号]-datalake"]
},
"object": {
"key": [{
"prefix": "order_items/"
}]
}
}
}weather
json
{
"source": ["aws.s3"],
"detail-type": ["Object Created"],
"detail": {
"bucket": {
"name": ["s3-[自分の名前]-[番号]-datalake"]
},
"object": {
"key": [{
"prefix": "weather/"
}]
}
}
}動作確認: S3
S3サービスをクリック

動作確認: フォルダ作成
s3-[自分の名前]-[番号]-datalakeを選択し、フォルダを作成

usersフォルダを作成する

同様にして下記フォルダも作成する
productsordersorder_itemsweather

動作確認: ファイルアップロード
s3-[自分の名前]-[番号]-datalakeのusersフォルダに下記ファイルをアップロードする


動作確認: StepFunctions確認
自身のStepFunctionsが動いていることが確認できればOK
(失敗する場合もあるが、一度でも成功している履歴があればOK)


