StepFuncitonsに慣れるため、デモでリソースを立ち上げました。
0. 概要
- 毎日00:00にバッチ処理を開始
- データベースから患者データを抽出(今回はデータベースからの抽出ではなく仮データ生成)
- 患者データを加工(今回は簡単に小文字→大文字変換のみ)
- 加工データをS3へアップロード
- 処理が完了したら通知メールを送信
1. 構成
StepFunctionで以下を処理
工程 | AWSリソース |
---|---|
ジョブのスケジュール実行 | EventBridge |
データベースからデータ抽出 | Lambda |
データ加工 | Lambda |
S3へのアップロード | S3 / Lambda |
メール通知 | SNS |
フォルダ構成
(venv) amba:demo-test-stepfunctions akira_mba$ tree -L 2
.
├── eventbridge.tf
├── iam.tf
├── lambda
│ ├── extract_data.py
│ ├── extract_data.zip
│ ├── process_data.py
│ ├── process_data.zip
│ ├── send_notification.py
│ ├── send_notification.zip
│ ├── upload_to_s3.py
│ └── upload_to_s3.zip
├── lambda.tf
├── main.tf
├── output.json
├── s3.tf
├── sns.tf
├── stepfunctions.tf
├── terraform.tfstate
├── terraform.tfstate.backup
└── venv
├── bin
├── include
├── lib
└── pyvenv.cfg
6 directories, 20 files
(venv) amba:demo-test-stepfunctions akira_mba$