Amazon ECS LogConfiguration返回“不支持的属性logConfiguration”
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Amazon ECS LogConfiguration返回“不支持的属性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, ... ]
}
另一答案
我不确定在问这个问题时是否在CloudFormation中没有LogConfiguration
,但现在是。
它也是区分大小写的,因此您需要将logConfiguration
更改为LogConfiguration
,将logDriver
更改为LogDriver
,将options
更改为Options
。像这样:
"ContainerDefinitions" : [
{
"Name": "foo",
"PortMappings": [ ... code omitted ... ],
"LogConfiguration" : {
"LogDriver" : "fluentd",
"Options" : {
"fluentd-address" : "foo:24224",
"tag" : "foobar"
}
}
}
]
我没有用流利的测试,但我知道这个配置与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" }
}
}
}
]
以上是关于Amazon ECS LogConfiguration返回“不支持的属性logConfiguration”的主要内容,如果未能解决你的问题,请参考以下文章
使用 docker compose 在 Amazon ECS 上部署应用程序