AWS Step Functions入門|複数Lambda関数を組み合わせた自動化ワークフローの設計と実装

現場実践|AWS Step Functions入門
AWS Step Functions入門|複数Lambda関数を組み合わせた自動化ワークフローの設計と実装
「複数のLambda関数を順番に実行したい」「エラー時に自動リトライしたい」——AWS Step Functionsを使った複数Lambda関数のオーケストレーション・エラーハンドリング・並列実行の設計を解説します。
💡 Step Functionsは複数の処理を「見える化」しながらオーケストレーションするサービス。「Lambda関数Aが終わったらB・エラーならC」という条件分岐・並列実行・リトライを視覚的なステートマシンで管理できます。
1. Step Functionsを使うべき場面
- マルチステップの処理を管理したい:「注文受付→在庫確認→決済→発送通知」のような順番が重要な処理を確実に実行する
- エラーハンドリングを実装したい:Lambda関数が失敗した場合に自動リトライ・エラー通知・ロールバック処理を組み込む
- 並列処理を組み合わせたい:「複数のS3ファイルを同時に処理してから集計する」というMap/Parallelステートで並列実行する
- ヒューマンアプルーバルフローを作りたい:承認が必要なワークフローでステートマシンを一時停止して承認後に再開する
2. Amazon States Language(ASL)の基本
{
"Comment": "注文処理ワークフロー",
"StartAt": "CheckInventory",
"States": {
"CheckInventory": {
"Type": "Task",
"Resource": "arn:aws:lambda:ap-northeast-1:XXX:function:check-inventory",
"Next": "ProcessPayment",
"Retry": [{
"ErrorEquals": ["States.TaskFailed"],
"IntervalSeconds": 3,
"MaxAttempts": 2,
"BackoffRate": 2
}],
"Catch": [{
"ErrorEquals": ["States.ALL"],
"Next": "HandleError"
}]
},
"ProcessPayment": {
"Type": "Task",
"Resource": "arn:aws:lambda:ap-northeast-1:XXX:function:process-payment",
"Next": "SendNotification"
},
"SendNotification": {
"Type": "Task",
"Resource": "arn:aws:lambda:ap-northeast-1:XXX:function:send-notification",
"End": true
},
"HandleError": {
"Type": "Fail",
"Error": "OrderFailed"
}
}
}3. Expressワークフロー vs Standardワークフロー
| Standard | Express | |
|---|---|---|
| 最大実行時間 | 1年 | 5分 |
| 実行保証 | At-Least-Once(少なくとも1回) | At-Least-Once |
| 料金 | 状態遷移回数課金 | 実行回数+期間課金(大量処理に安い) |
| 向いている用途 | 長時間処理・ヒューマン承認フロー | 大量の短時間ストリーミング処理 |
📌 この記事のポイント
- Step FunctionsはマルチステップのLambda処理にエラーハンドリング・並列実行・ヒューマン承認を追加できる
- ASLでRetry・Catchを設定することで自動リトライとエラー時の別フロー実行が実現する
- 長時間・ヒューマン承認はStandard、大量短時間処理はExpressワークフローを選ぶ
キャリアの疑問、一緒に解決しませんか?
Route Bloomでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




