首页 > 解决方案 > 使用相同的 Fargate 容器运行从 AWS Step Functions 执行不同的步骤

问题描述

我想知道是否可以使用相同的 Fargate 容器运行从 AWS Step Functions 执行不同的步骤。

比方说,我有一个容器,它根据输入参数做出一件事或另一件事。想象一下,第一步触发容器并等待接收任务令牌但容器继续运行。稍后,在另一个步骤中,同一个容器将需要向 Step 函数发送第二个任务 ID 以完成该步骤。

我不想为每个步骤触发一个任务,所以我想知道是否有办法与容器通信第二个任务 id 以在同一次运行中将第二个任务标记为完成。

还要提到我在执行步骤之间还有一些其他的 lambda 执行。

可能吗?

标签: amazon-ecsaws-fargateaws-step-functions

解决方案


是的,如果您想与同一个容器任务进行通信,在您的状态机的以下步骤之一中运行,您可以使用 Activity Task。

旋转后的容器将轮询活动,getActivityTask当它收到结果时,它可以sendTaskSuccess使给定的步骤通过或sendTaskFailure使步骤失败。

我会推荐你​​这个教程:

https://docs.aws.amazon.com/step-functions/latest/dg/tutorial-creating-activity-state-machine.html

以及有关活动的文档:

https://docs.aws.amazon.com/step-functions/latest/dg/concepts-activities.html


推荐阅读