Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services 执行步骤功能“;任务“;使用ECS远门_Amazon Web Services_Amazon Ecs_Aws Step Functions_Aws Fargate - Fatal编程技术网

Amazon web services 执行步骤功能“;任务“;使用ECS远门

Amazon web services 执行步骤功能“;任务“;使用ECS远门,amazon-web-services,amazon-ecs,aws-step-functions,aws-fargate,Amazon Web Services,Amazon Ecs,Aws Step Functions,Aws Fargate,在Re:Invent 2018中,AWS似乎推出了带有Step功能的新集成,其中包括ECS Fargate支持 我一直在研究这个问题,我能够启动ECS任务并完成它的工作,但我无法将所需的输出发送回step函数。响应语法似乎也没有任何与特定状态的输出相对应的内容 ECS任务是否可以将输出发送回step功能?任何线索都会有帮助 注意:我知道活动,并让ECS轮询活动,完成后发送任务成功。但是,如果可行的话,我希望利用step函数调用ECS。我目前正在从事一个项目,该项目利用step函数顺序启动多个

在Re:Invent 2018中,AWS似乎推出了带有Step功能的新集成,其中包括ECS Fargate支持

我一直在研究这个问题,我能够启动ECS任务并完成它的工作,但我无法将所需的输出发送回step函数。响应语法似乎也没有任何与特定状态的输出相对应的内容

ECS任务是否可以将输出发送回step功能?任何线索都会有帮助


注意:我知道活动,并让ECS轮询活动,完成后发送任务成功。但是,如果可行的话,我希望利用step函数调用ECS。

我目前正在从事一个项目,该项目利用step函数顺序启动多个Fargate任务,我遇到了同样的问题。目前,除了标准ResponseSyntax之外,似乎没有其他方法可以返回任何内容,尽管希望AWS能在这方面有所扩展

我们解决这一限制的方法只是使用S3存储每个任务的输出,以便后续任务(或其他步骤)可以访问它。我们为每个步骤函数调用提供S3 bucket和S3 key前缀作为环境变量,并且由于容器重写作为ResponseSyntax的一部分返回,因此它们可以通过以下代码段传递到其他步骤

"Overrides": {
    "ContainerOverrides": [
     {
       "Name": "<your container name>",
       "Environment.$": "$.Overrides.ContainerOverrides[0].Environment"
     }
    ]
}           
“覆盖”:{
“集装箱越界”:[
{
“名称”:“,
“环境。$”:“$.Overrides.ContainerOverrides[0]。环境”
}
]
}           
您可以使用“等待回调(
.waitForTaskToken
)”
集成模式回调ECS任务中的单步函数。使用
.waitForTaskToken
而不是
.sync
,执行将暂停并等待SendTaskSuccess或SendTaskFailure,这可以通过ECS任务和您想要的任何输出来完成。它类似于活动,但任务令牌被推送到下游服务,而不是轮询它

arn:aws:states:::ecs:runTask.sync
任务的输出是的结果


您是否能够在Fargate任务执行后立即从该点重新启动管道?我认为您必须永远保留S3输出。确保它们不会被覆盖,否则会失去再现性。我们目前还没有设置任何重启支持,我们的管道目前只有两个步骤。如果您需要能够从任何一点再次运行管道并再现结果,那么是的,您必须保持S3输出。根据您需要重新运行作业的频率,S3新的智能分层有助于降低在S3中长期保存文件的成本。