微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过 aws Step Functions 中的失败状态传播错误消息

如何解决通过 aws Step Functions 中的失败状态传播错误消息

我正在使用 aws Step Functions 来管理工作流程。我正在使用失败状态来处理工作流中的错误。我想传播 Step Function 工作流中的一些 json,以便用户可以轻松识别错误来源。例如,如果失败状态的 json 输入如下所示:

{
    "error": "some error text","other_stuff": {...}
}

然后我想拉出错误的来源。我已经像这样设置了我的失败状态:

FailState:
    Type: Fail
    Cause: States.Format($.error)
    Error: Failure Here

然而,这只是生成文字字符串 States.Format($.error) 作为失败状态的原因。如何使用 aws 状态语言和 Fail 状态将实际错误显示为 Fail 状态输出的一部分?任何能够成功地将错误文本从 Step Input 传播到 Fail 状态的 Step Output 的解决方案都足以解决这个问题。

解决方法

如果其他人偶然发现了这个问题,我联系了 AWS 支持,他们是这样告诉我的:

“此状态下的“原因”和“错误”字段仅接受字符串类型值。这就是您将文本字符串作为响应的原因。不过,好消息是,我们已经有了一个现有功能请求,由 Step Functions 开发团队等待,以实现将 JSON 路径(如 $.error)发送到失败状态的功能。”

因此出于某种原因,AWS 步骤函数不允许您传递动态错误消息。他们确实提供了一些解决方法,例如将失败状态更改为成功并以这种方式传播错误消息,或者在状态机失败的情况下创建一个 sns 主题进行发布。我个人只是更新了状态轮询 API 以获取索引 [-2] 处的状态以将错误传播给用户。无论如何,目前要使用此功能应该采用一些变通方法,希望 AWS 能够快速推出此功能。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。