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

AWS Step Functions 中的清理逻辑

如何解决AWS Step Functions 中的清理逻辑

我在 Step Functions 状态机中使用 LambdaA 处理故障并进行清理,例如更新 DDB 中的作业状态。

但 Step Functions 执行本身也可能失败,例如它可能会违反整体超时或步骤之间的崩溃。因此,我需要将错误处理 LambdaB 添加到 Step Functions CloudWatch 事件并进行类似的清理。

现在我在考虑是否可以删除 LambdaA 并简单地转发到失败状态,这应该会触发 CloudWatch 事件并且所有清理工作都将依赖于 LambdaB。

这是一个好的设计吗?是否有关于 Step Functions 的清理逻辑设计的最佳实践?

谢谢

解决方法

根据我的观察,将复杂的任务分解成小任务并组合不同的 AWS 服务是合理的。

此外,您可以尝试使用带有 Retry 属性的 Step Function Error Handling。

"Retry": [ {
   "ErrorEquals": [ "States.Timeout" ],"IntervalSeconds": 3,"MaxAttempts": 2,"BackoffRate": 1.5
} ]

参考:https://docs.aws.amazon.com/step-functions/latest/dg/concepts-error-handling.html

但是,您必须将一个逻辑添加到您的 LambdaA 中,如果它是 Retry,它将被清理。如果没有,它只会向前移动。

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