Lee*_*des 3 amazon-web-services aws-lambda aws-step-functions
安装程序
我有一台AWS状态机.我有一个可能返回结果的Lambda,或者可能抛出异常.该步骤定义了一个catch块,并根据异常的类型,遵循不同的执行路径.
问题
但是,我想存储失败的Lambda 输入,以便以后可以重新应用它.
失败的Lambda的输出是例外.
我试过的
添加OutputPath和ResultPath时,如果它是异常,则不适用.
我真的不想总是抛出自定义异常并附加json输入,然后解析异常消息.
我尝试过使用Parallel,将输入发送到我的Lambda和Pass.结果是一个带有Lambda输出(成功输出或异常)和原始输入的数组.但是,现在我需要添加一个Choice来检查是否有异常,然后继续成功输出,或者用原始输入分支.我似乎无法在Choice中定义JsonPath来检查数组的第一个元素中是否存在"Error".
小智 8
您可以使用ResultPathin Catch子句执行此操作,该子句将异常输出放在原始输入下的特定路径中.
例如:
"Catch": [{
"ErrorEquals": ["States.ALL"],
"Next": "NextTask",
"ResultPath": "$.error"
}]
Run Code Online (Sandbox Code Playgroud)
输入
{"foo": "bar"}
Run Code Online (Sandbox Code Playgroud)
在异常情况下会产生如下输出:
{
"foo": "bar",
"error": {
"Error": "..."
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1073 次 |
| 最近记录: |