Step Functions
🔥 Vibe プロンプト
「注文処理ワークフローを作成:検証→支払い→発送→通知。」
{
"StartAt": "ValidateOrder",
"States": {
"ValidateOrder": {
"Type": "Task",
"Resource": "arn:aws:lambda:validate-order",
"Next": "ProcessPayment"
},
"ProcessPayment": {
"Type": "Task",
"Resource": "arn:aws:lambda:process-payment",
"Next": "CheckPaymentResult",
"Retry": [{
"ErrorEquals": ["TransactionError"],
"IntervalSeconds": 5,
"MaxAttempts": 3,
"BackoffRate": 2
}]
},
"CheckPaymentResult": {
"Type": "Choice",
"Choices": [{
"Variable": "$.payment.status",
"StringEquals": "SUCCESS",
"Next": "ShipOrder"
}],
"Default": "HandleFailure"
},
"ShipOrder": {
"Type": "Task",
"Resource": "arn:aws:lambda:ship-order",
"End": true
},
"HandleFailure": {
"Type": "Task",
"Resource": "arn:aws:lambda:handle-failure",
"End": true
}
}
}
機能
| 機能 | 用途 | |------|------| | Retry | 一時的エラー(指数バックオフ) | | Catch | 永続的失敗 | | Choice | 条件分岐 | | Parallel | 並列処理 | | Wait | 遅延 | | Map | リストの各アイテムを処理 |
Step Functions vs Lambda
| Step Functions | Lambda | |---------------|--------| | 長時間実行(最大1年) | 最短(最大15分) | | オーケストレーション | 単一タスク | | 視覚的デバッグ | コードデバッグ | | 組み込みリトライ | カスタムリトライ |
章のまとめ
- コアコンセプトと原理を理解
- 実装方法とテクニックを習得
- 一般的な問題と解決策に精通
- 実際のプロジェクトに適用可能
さらに読む
- 公式ドキュメントとAPIリファレンス
- GitHubのオープンソース例
- 技術書とオンラインコース
- コミュニティディスカッションと技術ブログ
実装例
基本例
# 完全な実装例を提供します
手順
- セットアップ: 開発環境の設定
- データ: 必要なデータの準備
- 実装: コア機能の構築
- テスト: 動作確認
- 最適化: パフォーマンスの向上
よくあるエラー
| エラー種別 | 原因 | 解決方法 | |-----------|------|---------| | コンパイル | 構文 | コードの構文を確認 | | 実行時 | 環境 | 依存パッケージの確認 | | 論理 | アルゴリズム | ステップごとのデバッグ | | パフォーマンス | 効率 | プロファイラーの使用 |
コード例
import sys
def main():
print("Hello, World!")
if __name__ == "__main__":
main()
参考資料
- 公式ドキュメント
- APIリファレンス
- オープンソース例
- コミュニティディスカッション