AWS Step Functions 中的 Docker 映像

ant*_*ton 5 amazon-web-services docker aws-step-functions aws-batch

假设我有一个 AWS Step 函数,其状态是批处理作业,与 Docker 映像关联。

  1. 是否有更有效的方法将 Docker 映像与状态关联起来,而不是使用批处理作业 ( arn:aws:states:::batch:submitJob.sync)?创建活动看起来太复杂了。

  2. 除了基于 AWS 的文件存储、对象数据库、在单独实例上共享的 Docker 卷之外,是否有任何现实的方法可以在这种“dockerized”状态之间交换数据?例如,在状态之间传输容器化应用程序的 STDOUT 内容?

  3. 如何将应用程序级别的错误从 Docker 容器转移(报告)到相应的状态以使其失效,将其标记为“失败”?这取决于应用程序的返回值吗?

Chr*_*ams 5

我在步骤函数中使用ECS Fargate,它允许您专注于容器级别(将为您的任务启动并执行容器)。

当您说交换数据时,您指的是简单的 JSON 文档还是大文件?如果您想要简单的 JSON 文档,则可以使用。这应该有助于解释: https: //docs.aws.amazon.com/step-functions/latest/dg/concepts-input-output-filtering.html

如果出现应用程序错误,我通常会设置退出代码,其中 0 表示成功,其他数字表示不成功。

希望这可以帮助

  • 感谢您的快速答复!我与 Docker 绑定在一起,因此 Fargate 解决方案不适合我。关于输出 - 假设这是一个从小到中大小的 JSON 对象。应用程序的退出代码很好地解释了我的问题的第三项,我对此非常赞赏。再次感谢您! (2认同)
  • 是的,由于缺乏 AWS 经验,这在我看来是一个误解。仅使用批处理作业没有严格的限制。 (2认同)
  • 当然,我会在最近的时间尝试并把我的反馈放在这里!非常感谢您的建议! (2认同)