AWS Step Functions中的Docker镜像

5

假设我有一个AWS Step函数,其中一个状态是与Docker镜像关联的Batch Job。

  1. 有没有更有效的方法将Docker镜像与状态相关联,而不是使用Batch Job (arn:aws:states:::batch:submitJob.sync)?创建活动似乎太复杂了。

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

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

1个回答

5

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

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

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

希望这有所帮助。


2
谢谢您的快速回复!由于我依赖于 Docker,所以 Fargate 解决方案对我来说行不通。关于输出 - 让我们假设这是一个从小到中等大小的 JSON 对象。而应用程序的退出代码非常好地解释了我问题的第三项,对此我非常感激。再次感谢您! - anton
你好,当你说与Docker解决方案绑定时,是否意味着你必须使用Batch而不是使用Fargate(它是一个Docker编排器)? :) - Chris Williams
2
是的,这似乎是我因缺乏AWS经验而引起的误解。使用批处理作业并没有严格的限制。 - anton
啊,太棒了,使用Fargate真是太AWSome了 :) - Chris Williams
2
当然,我会尽快尝试并在这里提供我的反馈!非常感谢您的建议! - anton

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接