Amazon ECS LogConfiguration返回“不支持的属性logConfiguration”

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Amazon ECS LogConfiguration返回“不支持的属性logConfiguration”相关的知识,希望对你有一定的参考价值。

我正在尝试将LogConfiguration用于特定的任务定义。但CloudFormation一直在抱怨它Encountered unsupported property logConfiguration

根据文档应该可以使用它。

http://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html#container_definition_storage

"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 上部署应用程序

Amazon AWS ECS Docker 端口未正确绑定

在 Jenkins 上使用 Groovy 配置 amazon-ecs 从属插件

Amazon ECS 未扩展实例

ubuntu 上的 Amazon ECS 代理未启动

Amazon ECS LogConfiguration返回“不支持的属性logConfiguration”