【AWS】API GatewayからStep Functionsを呼び出す際のエラーを解消

API gatewayからLambda関数を直接呼び出して動かす仕組みを作ったけど、処理が大きくなるとAPI gatewayの最大実行時間である29秒制限に引っかかってしまってどうにも立ち行かない。解決方法を調べてみるとStepFunctionsを利用して非同期処理にする方法が最もすっきりできそうだったので実装してみた。

細かい設定方法などについては別サイトにてまとめられている記事がたくさんあったのでそちらを参考に頂いた方が早いかと思います(↓)が、
dev.classmethod.jpdocs.aws.amazon.com

今回はAPI gatewayからStep Functionsを呼び出すテストをした際に直面したエラーの解決方法についてメモしておきたいと思います。

以下、API gatewayからStep Functionsをcallする際のRequest Bodyの基本パラメータなります。

{
   "input": "string",
   "name": "string",
   "stateMachineArn": "string",
   "traceHeader": "string"
}

・ExecutionAlreadyExists
 ⇒上記パラメータの内、「name」は毎度別の名前にする必要があるようで、過去にした値を指定するとこのエラーが出ます。「name」を適当に別の値に変えればOK
・InvalidExecutionInput
 ⇒「input」パラメータには、Lambda関数に渡す引数を入力しますが、jsonの中にjsonを入れる形になるので以下のようにダブルクオートをエスケープしてあげる必要があるようです。こちらの記述方法に修正すればOK

"input": "{\"first_name\" : \"test\"}"

自分は直面しませんでしたが、他のエラーに関してもあまり親切には書かれていませんが以下に説明があります。
docs.aws.amazon.com

ご参考に!