使用 ECS Fargate 执行 Step Function "Tasks"

Cha*_*adi 5 amazon-web-services amazon-ecs aws-step-functions aws-fargate

在 Re:Invent 2018 中,AWS 似乎推出了与 Step Functions 的新集成,其中包括 ECS Fargate 支持。

https://docs.aws.amazon.com/step-functions/latest/dg/connectors-ecs.html

我一直在对此进行深入研究,并且能够启动 ECS 任务并执行其操作,但是我无法将所需的输出发送回 step 函数。响应语法似乎也没有与特定状态的输出相对应的任何内容。

https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html#API_RunTask_ResponseSyntax

ECS 任务是否可以将输出发送回步进函数?任何线索都会有所帮助。

PS:我知道活动,并且对活动进行 ECS 轮询,并在完成时发送任务成功。但是,如果可行的话,我希望利用 step 函数调用 ECS。

小智 1

我目前正在开发一个项目,该项目利用 Step Functions 按顺序启动多个 Fargate 任务,我遇到了同样的问题。目前似乎没有办法返回除标准 ResponseSyntax 之外的任何内容,尽管希望这是 AWS 将扩展的一个领域。

我们针对此限制的解决方法只是使用 S3 来存储每个任务的输出,以便后续任务(或其他步骤)可以访问它。我们为每个 Step Function 调用提供 S3 存储桶和 S3 键前缀作为环境变量,并且由于容器覆盖作为 ResponseSyntax 的一部分返回,因此可以使用以下代码片段将它们传递到其他步骤。

"Overrides": {
    "ContainerOverrides": [
     {
       "Name": "<your container name>",
       "Environment.$": "$.Overrides.ContainerOverrides[0].Environment"
     }
    ]
}           
Run Code Online (Sandbox Code Playgroud)