2017-07-18 4 views
2

セットアップAWSステップ関数:ラムダ例外で元の入力を取得しますか?

私はAWS状態マシンを持っています。私は結果を返すラムダを持っている、または例外をスローする可能性があります。ステップにはcatchブロックが定義されており、例外のタイプに応じて異なる実行パスが続きます。

問題

はしかし、私はそれが後日再適用することができるように失敗したラムダの入力を保存したいです。

失敗したラムダからの出力は例外です。

私はそれは例外だときOutputPathとResultPathは適用されません追加

試してみた何。

カスタム例外をスローしてjson入力を添付し、例外メッセージを解析する必要は本当にありません。

パラレルを使用してラムダとパスに入力を送信しようとしました。結果は、ラムダ出力(成功した出力または例外)と元の入力の配列です。ただし、例外があるかどうかを確認するチョイスを追加してから、正常な出力を続行するか、元の入力を使用して分岐する必要があります。 ChoiceのJsonPathを定義して、配列の最初の要素に "Error"が存在するかどうかを確認することはできません。

答えて

6

これは、例外出力を元の入力の下の特定のパスに入れるResultPathCatch節で行うことができます。

例:例外の場合

"Catch": [{ 
    "ErrorEquals": ["States.ALL"], 
    "Next": "NextTask", 
    "ResultPath": "$.error" 
}] 
入力と

{"foo": "bar"} 

ような出力を生成する:

{ 
    "foo": "bar", 
    "error": { 
    "Error": "..." 
    } 
} 
関連する問題