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-created
rule-[自分の名前]-[番号]-orders-created
rule-[自分の名前]-[番号]-order_items-created
rule-[自分の名前]-[番号]-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
フォルダを作成する
同様にして下記フォルダも作成する
products
orders
order_items
weather
動作確認: ファイルアップロード
s3-[自分の名前]-[番号]-datalake
のusers
フォルダに下記ファイルをアップロードする
動作確認: StepFunctions確認
自身のStepFunctionsが動いていることが確認できればOK
(失敗する場合もあるが、一度でも成功している履歴があればOK)