如何解决排队AWS Step Function执行的最佳方法是什么?
我正在通过Node应用程序中的Express路线触发步进功能。此步骤功能与以太坊区块链交互,因此高度异步。如果一次尝试多次,交易也可能失败。
正因为如此,我想将这一步函数的执行排队,但是奇怪的是,似乎没有一种直接的方法。
做到这一点的最佳方法是什么?
解决方法
您可以在步功能中使用地图。
Step功能提供内置方式,可针对给定数量的项目并行执行或一次执行。下面是一个示例:
"Validate-All": {
"Type": "Map","InputPath": "$.detail","ItemsPath": "$.shipped","MaxConcurrency": 0,"Iterator": {
"StartAt": "Validate","States": {
"Validate": {
"Type": "Task","Resource": "arn:aws:lambda:us-east-1:123456789012:function:ship-val","End": true
}
}
},"ResultPath": "$.detail.shipped","End": true
}
您需要更改 MaxConcurrency = 1 的值,以便仅执行一次,并且将一直进行直到直到 InputPath 中的项目用完为止。 InputPath 应该是list
,您可以在 InputPath 中将项目排队,然后启动状态机。
您可以阅读更多here。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。