Step Functions の最適化された統合と AWS SDK 統合の違いを教えてください
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
困っていた内容
Step Functions から Lambda を実行する検証を行っています。
Step Functions のワークフロースタジオでの設定では最適化された統合と AWS SDK 統合を選択できますが、どのような違いがあるのか教えてください。
どう対応すればいいの?
以下の AWS 公式ドキュメントでそれぞれの統合の違いをご確認ください。
Integrating optimized services with Step Functions - AWS Step Functions
主な違いとしては以下の点があります。
- ジョブの実行がサポートされているか
- コールバックタスクがサポートされているか
上記以外にもサービスごとに違いがあるため、サービスごとの違いについては上記ドキュメントに記載されている各サービスへのリンクからご確認ください。
Lambda での例
例えば Lambda における最適化された統合の主な機能は以下の通りです。
Invoke an AWS Lambda function with Step Functions - AWS Step Functions
- The Payload field of the response is parsed from escaped Json to Json.
- If an exception is raised within the Lambda function, the Task will fail.
具体的な例として、Lambda から以下のような JSON 形式のレスポンスを返した場合で比較してみます。
return {
key1: "value1",
key2: "value2",
};
最適化された統合と AWS SDK 統合では上記の JSON が以下のような結果として取得されます。
- 最適化された統合
{
"key1": "value1",
"key2": "value2"
}
- AWS SDK 統合
"{\"key1\":\"value1\",\"key2\":\"value2\"}"
Lambda から JSON 形式のレスポンスを返した場合、最適化された統合では JSON 形式で取得される一方、AWS SDK 統合 では文字列として取得されます。
データの取得形式が異なることで後続の処理も変わってくるので、各サービスごとでの違いを把握したうえでどちらの統合を使用するかをご検討ください。






