Amazon web services AWS Step函数:在Lambda异常上,获取原始输入?

Amazon web services AWS Step函数:在Lambda异常上,获取原始输入?,amazon-web-services,aws-lambda,aws-step-functions,Amazon Web Services,Aws Lambda,Aws Step Functions,设置 我有一台AWS状态机。我有一个Lambda,它可能返回一个结果,或者抛出一个异常。该步骤定义了一个catch块,并根据异常的类型遵循不同的执行路径 问题 但是,我希望存储失败的Lambda的输入,以便以后可以重新应用它 失败Lambda的输出是异常 我尝试过的 添加OutputPath和ResultPath在异常时不适用 我真的不想总是抛出自定义异常并附加json输入,然后通过异常消息进行解析 我尝试使用并行程序,将输入发送到Lambda和Pass。结果是一个包含Lambda输出(成功输出

设置

我有一台AWS状态机。我有一个Lambda,它可能返回一个结果,或者抛出一个异常。该步骤定义了一个catch块,并根据异常的类型遵循不同的执行路径

问题

但是,我希望存储失败的Lambda的输入,以便以后可以重新应用它

失败Lambda的输出是异常

我尝试过的

添加OutputPath和ResultPath在异常时不适用

我真的不想总是抛出自定义异常并附加json输入,然后通过异常消息进行解析


我尝试使用并行程序,将输入发送到Lambda和Pass。结果是一个包含Lambda输出(成功输出或异常)和原始输入的数组。但是,现在我需要添加一个选项来检查是否存在异常,然后继续成功的输出,或者分支原始输入。我似乎无法在选项中定义JsonPath来检查数组的第一个元素中是否存在“Error”。

您可以使用
Catch
子句中的
ResultPath
来执行此操作,该子句将异常输出放在原始输入下的特定路径中

例如:

投入

{"foo": "bar"}
在异常情况下,将产生如下输出:

{
  "foo": "bar",
  "error": {
    "Error": "..."
  }
}
{
  "foo": "bar",
  "error": {
    "Error": "..."
  }
}