尝试在EC2实例中运行任务时,我得到了这个可怕的错误消息。
Run tasks failed
Reasons : ["ATTRIBUTE"]
Like many others,我被引荐去我发现该列表的任务的“ requiresAttributes”部分:
"requiresAttributes": [
{
"targetId": null,
"targetType": null,
"value": null,
"name": "ecs.capability.execution-role-ecr-pull"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.18"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "ecs.capability.task-eni"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.ecr-auth"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.task-iam-role"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "ecs.capability.execution-role-awslogs"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.logging-driver.awslogs"
},
{
"targetId": null,
"targetType": null,
"value": null,
"name": "com.amazonaws.ecs.capability.docker-remote-api.1.19"
}
]
在尝试将这些看似无用的属性添加到群集的实例时,我被阻止了。 AWS控制台表示不允许自定义/添加某些前缀(如ecs)。
平台不允许的情况下,如何匹配属性?
我还研究了如何使用不同的AMI创建实例,但是Amazon ECS不允许这样做,而只是默认使用最新的实例。
Amazon ECS是一个非常酷的产品,但这反映了它的一些不成熟。实际上,我是从beantalk的背景进入ECS的,希望专业套件能够如期编排容器。相反,使用3个小时后,我收到了一些合理的投诉!
答案 0 :(得分:0)
除非实例和实例上的ECS代理具有此功能,否则您不能仅添加这些属性。例如,如果您未运行使用远程API版本1.19的Docker版本,则如果添加该属性,则将造成问题,因为ECS会认为实例能够执行某些操作,因为添加了属性,但该实例实际上无法做到这一点。
我的建议是使用来自AWS的官方AMI,因为它已经具有Docker版本,代理版本,操作系统兼容性和正确的属性的正确组合。
答案 1 :(得分:0)
我在ECS中尝试运行Windows docker容器时遇到了同样的情况。
就我而言,任务定义显示了以下必需属性:
用aws ecs describe-container-instances --cluster=ClusterName --container-instances arn:<rest of the instance arn>
描述ECS实例表明他们缺少ecs.capability.execution-role-awslogs
和com.amazonaws.ecs.capability.logging-driver.awslogs
属性。
该解决方案记录在https://github.com/aws/amazon-ecs-agent/issues/1395上,该解决方案是使用命令ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE
将True
环境变量设置为[Environment]::SetEnvironmentVariable("ECS_ENABLE_AWSLOGS_EXECUTIONROLE_OVERRIDE",
$TRUE, "Machine")
。 Amazon ECS
服务重新启动后,我就可以部署任务了。
因此,根据您的情况,您可能会发现可以应用一些替代方法来为ECS实例赋予它们所需的属性。