【问题标题】:AWS ecs task definition variablesAWS ecs 任务定义变量
【发布时间】:2017-03-04 05:59:44
【问题描述】:

是否可以在 AWS ECS 任务定义中动态设置值?例如。我有以下卷定义。

"volumes": [
    {
        "host": {
            "sourcePath": "/tmp/logs/registrations"
        },
        "name": "logs"
    }
],

我想做类似/tmp/logs/<container_id> 的事情。

我正在尝试这样做,因为我有多个容器运行同一个应用程序。我需要为 sumologic 收集器挂载每个容器日志目录。问题是如果目录没有被容器命名空间,那么挂载就会发生冲突。

【问题讨论】:

    标签: amazon-web-services docker amazon-ecs


    【解决方案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 的模式,以防您正在寻找它的其他示例。

    【讨论】:

      猜你喜欢
      • 2017-09-05
      • 1970-01-01
      • 1970-01-01
      • 2016-05-04
      • 1970-01-01
      • 2023-01-18
      • 1970-01-01
      • 2021-05-13
      • 1970-01-01
      相关资源
      最近更新 更多