AWS ecs 任务定义变量
Posted
技术标签:
【中文标题】AWS ecs 任务定义变量【英文标题】:AWS ecs task definition variables 【发布时间】:2017-03-04 05:59:44 【问题描述】:是否可以在 AWS ECS 任务定义中动态设置值?例如。我有以下卷定义。
"volumes": [
"host":
"sourcePath": "/tmp/logs/registrations"
,
"name": "logs"
],
我想做类似/tmp/logs/<container_id>
的事情。
我正在尝试这样做,因为我有多个容器运行同一个应用程序。我需要为 sumologic 收集器挂载每个容器日志目录。问题是如果目录没有被容器命名空间,那么挂载就会发生冲突。
【问题讨论】:
【参考方案1】:如果不需要保存到文件系统,Cloudwatch 日志是另一种选择。
如果您使用的是 ECS 优化的 AMI,它已经配置好,您只需在容器任务定义中打开它:
http://docs.aws.amazon.com/AmazonECS/latest/developerguide/using_awslogs.html
您还需要为每个容器配置日志组或日志流。
【讨论】:
这让我朝着正确的方向前进。我最终使用了 docker 提供的标准 json 日志。一切都按容器 ID 分组。【参考方案2】:将日志保存到文件系统是硬性要求吗?如果没有,Sumo Logic 有一篇关于另一个选项的不错的文章:Update On Logging With Docker。
您在一个容器中运行Sumo Logic Collector for Docker,在另一个容器中运行您的应用程序。您将 Docker 配置为将日志从应用程序容器发送到 Sumo Logic 收集器。这是built into Docker,因此您的应用程序不需要更改。然后收集器容器会将这些日志发送到 Sumo Logic。
我已经看到了这种称为sidecar 的模式,以防您正在寻找它的其他示例。
【讨论】:
以上是关于AWS ecs 任务定义变量的主要内容,如果未能解决你的问题,请参考以下文章