繁体   English   中英

AWS Step Functions:在Lambda异常上,获取原始输入?

[英]AWS Step Functions: On Lambda exception, get original input?

安装程序

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

问题

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

失败的Lambda的输出是例外。

我试过的

添加OutputPath和ResultPath时,如果它是异常,则不适用。

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

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

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

例如:

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

输入

{"foo": "bar"}

在异常情况下会产生如下输出:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM