【问题标题】:AWS Step Functions: On Lambda exception, get original input?AWS Step Functions:关于 Lambda 异常,获取原始输入?
【发布时间】:2017-12-23 11:24:31
【问题描述】:

设置

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

问题

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

失败的 Lambda 的输出是异常。

我的尝试

添加 OutputPath 和 ResultPath 不适用时例外。

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

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

【问题讨论】:

    标签: amazon-web-services aws-lambda aws-step-functions


    【解决方案1】:

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

    例如:

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

    有输入

    {"foo": "bar"}
    

    如果出现异常会产生如下输出:

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

    【讨论】:

      猜你喜欢
      • 2021-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-18
      • 1970-01-01
      • 2020-11-27
      • 2021-09-07
      • 1970-01-01
      相关资源
      最近更新 更多