Amazon ECS 日志配置 returns "unsupported property logConfiguration"
Amazon ECS LogConfiguration returns "unsupported property logConfiguration"
我正在尝试让 LogConfiguration 用于特定的任务定义。但是 CloudFormation 一直抱怨它 Encountered unsupported property logConfiguration
按照文档说应该可以用
"ContainerDefinitions" : [
{
"Name": "foo",
"PortMappings": [ ... code omitted ... ],
"logConfiguration" : {
"logDriver" : "fluentd",
"options" : {
"fluentd-address" : "foo:24224",
"tag" : "foobar"
}
},
}
]
知道我遗漏了什么吗?
您正在查看 Amazon ECS 文档而不是 AWS CloudFormation 文档。
根据 CloudFormation Amazon EC2 Container Service TaskDefinition ContainerDefinitions logConfiguration
不是 ContainerDefinitions
的一部分
{
"Command" : [ String, ... ],
"Cpu" : Integer,
"EntryPoint" : [ String, ... ],
"Environment" : [ Environment Variable, ... ],
"Essential" : Boolean,
"Image" : String,
"Links" : [ String, ... ],
"Memory" : Integer,
"MountPoints" : [ Mount Point, ... ],
"Name" : String,
"PortMappings" : [ Port Map, ... ],
"VolumesFrom" : [ Volume From, ... ]
}
我不确定问这个问题时 LogConfiguration
在 CloudFormation 中是否不可用,但现在可以了。
也是区分大小写的,所以你需要把logConfiguration
改成LogConfiguration
,logDriver
改成LogDriver
,options
改成Options
。像这样:
"ContainerDefinitions" : [
{
"Name": "foo",
"PortMappings": [ ... code omitted ... ],
"LogConfiguration" : {
"LogDriver" : "fluentd",
"Options" : {
"fluentd-address" : "foo:24224",
"tag" : "foobar"
}
}
}
]
我没有用 fluentd 测试过,但我知道 awslogs 驱动程序的这个配置有效:
"ContainerDefinitions": [
{
"Name": { "Ref": "ContainerName" },
"PortMappings": [ ... code omitted ... ],
"LogConfiguration": {
"LogDriver": "awslogs",
"Options": {
"awslogs-group": { "Ref": "LogGroupName" },
"awslogs-region": { "Ref": "AWS::Region" },
"awslogs-stream-prefix": { "Ref": "ContainerName" }
}
}
}
]
我正在尝试让 LogConfiguration 用于特定的任务定义。但是 CloudFormation 一直抱怨它 Encountered unsupported property logConfiguration
按照文档说应该可以用
"ContainerDefinitions" : [
{
"Name": "foo",
"PortMappings": [ ... code omitted ... ],
"logConfiguration" : {
"logDriver" : "fluentd",
"options" : {
"fluentd-address" : "foo:24224",
"tag" : "foobar"
}
},
}
]
知道我遗漏了什么吗?
您正在查看 Amazon ECS 文档而不是 AWS CloudFormation 文档。
根据 CloudFormation Amazon EC2 Container Service TaskDefinition ContainerDefinitions logConfiguration 不是 ContainerDefinitions
的一部分{
"Command" : [ String, ... ],
"Cpu" : Integer,
"EntryPoint" : [ String, ... ],
"Environment" : [ Environment Variable, ... ],
"Essential" : Boolean,
"Image" : String,
"Links" : [ String, ... ],
"Memory" : Integer,
"MountPoints" : [ Mount Point, ... ],
"Name" : String,
"PortMappings" : [ Port Map, ... ],
"VolumesFrom" : [ Volume From, ... ]
}
我不确定问这个问题时 LogConfiguration
在 CloudFormation 中是否不可用,但现在可以了。
也是区分大小写的,所以你需要把logConfiguration
改成LogConfiguration
,logDriver
改成LogDriver
,options
改成Options
。像这样:
"ContainerDefinitions" : [
{
"Name": "foo",
"PortMappings": [ ... code omitted ... ],
"LogConfiguration" : {
"LogDriver" : "fluentd",
"Options" : {
"fluentd-address" : "foo:24224",
"tag" : "foobar"
}
}
}
]
我没有用 fluentd 测试过,但我知道 awslogs 驱动程序的这个配置有效:
"ContainerDefinitions": [
{
"Name": { "Ref": "ContainerName" },
"PortMappings": [ ... code omitted ... ],
"LogConfiguration": {
"LogDriver": "awslogs",
"Options": {
"awslogs-group": { "Ref": "LogGroupName" },
"awslogs-region": { "Ref": "AWS::Region" },
"awslogs-stream-prefix": { "Ref": "ContainerName" }
}
}
}
]