我正在使用step函数工作流来解决一个问题。
问题是这样的,我有10个AWS批处理作业。
前3个作业按顺序运行,4-7作业是动态步骤,也就是说,它们需要以指定的不同参数多次运行。
对于每一个4-5-6-7工作流,根据参数的数量执行8-9-10个作业。
看起来地图在这里是最合适的,但是如果任何任务在映射状态4-5-6-7中失败,整个步骤就会失败。我不想一次执行另一次执行。
方法:我设计了三步函数。第一步函数运行1-3个作业,最后一步调用lambda函数,它提交4-5-6-7作业的多次执行。每执行4-5-6-7次执行,就会触发另一个lambda提交8-9-10个作业的多次执行。
我正在通过lambda函数手动连接step函数。
这是正确的方法,还是有更好的方法去做?
发布于 2020-05-20 13:54:35
我建议多几个元素,让你的解决方案更好地做好生产准备。
首先,我建议您消除Lambda函数调用,并对嵌套工作流使用"Run“(.sync:2) 服务集成。我昨天刚做了一个抽搐事件。
第二,如果要在Map中执行失败后继续执行,请确保正在实现Catcher(以及可选的检索器)。上星期二我做了一个抽搐事件,上面链接的第一个视频中有一些关于错误处理的讨论。
所以对于你的具体情况,我建议你:
有关Step函数和Lambda函数中并行性的更多信息,请参见这个抽搐事件。
以上所有内容的代码示例都可以在这是GitHub上的回购中获得。
我是代表我的雇主亚马逊( Amazon )捐款的。我的贡献是根据麻省理工学院的许可授权的。有关更详细的解释,请参见这里。
https://stackoverflow.com/questions/61883350
复制相似问题