我在创建云形成堆栈时遇到困难,因为当我尝试运行任务时遇到错误。出现错误是因为实例的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"
}
那么这些必需属性来自何处以及如何摆脱它们?
答案 0 :(得分:1)
我不确定为什么,但更新我的AMI解决了这个问题。 最初:ami-4fe4852a 现在:ami-8f7687e2