为什么我的AWS ECS任务需要docker api 1.18?

我在创build我的云形成堆栈时遇到困难,因为在尝试运行我的任务时遇到错误。 出现此错误的原因是Docker api版本的实例是1.19,并且任务定义指出它需要docker API版本1.17或1.18。 然而,我从来没有指出,这些版本应该是必需的,我不知道这些要求来自哪里。

这是我的任务定义:

"uiTaskDefinition" : { "Type" : "AWS::ECS::TaskDefinition", "Properties" : { "ContainerDefinitions" : [{ "Name" : "ui", "Memory" : "512", "PortMappings" : [ { "HostPort" : "8085", "ContainerPort" : "8080" } ], "Image" : {"Fn::Join" : ["", ["", {"Ref" : "DockerImageRepository"}, ":example_", "ui"]]}, "Command" : [ "example.jar" ], "Essential" : "true", "EntryPoint" : [ "/bin/bash", "/cts/runservice.sh" ], "MountPoints" : [{ "ContainerPath" : "/logs/", "SourceVolume" : "logs" }], "Cpu" : "128" }], "Volumes" : [{ "Name" : "logs", "Host" : { "SourcePath" : "/var/log/example" } }] } }, 

但是,这就是AWS控制台所说的任务定义(请参阅顶部的“requiredAttributes”):

 { "requiresAttributes":[ { "value":null, "name":"com.amazonaws.ecs.capability.docker-remote-api.1.17" }, { "value":null, "name":"com.amazonaws.ecs.capability.docker-remote-api.1.18" } ], "taskDefinitionArn":"arn:aws:ecs:us-east-1:example:task-definition/example-uiTaskDefinition:1", "status":"ACTIVE", "revision":1, "containerDefinitions":[ { "volumesFrom":[ ], "memory":512, "extraHosts":[ ], "dnsServers":[ ], "disableNetworking":null, "dnsSearchDomains":[ ], "portMappings":[ { "hostPort":xxxx, "containerPort":xxxx, "protocol":"tcp" } ], "hostname":null, "essential":true, "entryPoint":[ "/bin/bash", "/cts/runservice.sh" ], "mountPoints":[ { "containerPath":"/logs/", "sourceVolume":"logs", "readOnly":null } ], "name":"ui", "ulimits":[ ], "dockerSecurityOptions":[ ], "environment":[ ], "links":[ ], "workingDirectory":null, "readonlyRootFilesystem":null, "image":"example:example_ui", "command":[ "/example.jar" ], "user":null, "dockerLabels":{ }, "logConfiguration":null, "cpu":128, "privileged":null } ], "volumes":[ { "host":{ "sourcePath":"/var/log/example" }, "name":"logs" } ], "family":"example" } 

那么这些必要的属性来自哪里,我怎样才能摆脱它们呢?

我不确定为什么,但更新我的AMI解决了这个问题。 原名:ami-4fe4852a现在:ami-8f7687e2