【问题标题】:Name Sidekiq worker process with ECS task ID使用 ECS 任务 ID 命名 Sidekiq 工作进程
【发布时间】:2018-07-27 16:22:24
【问题描述】:

我们将 ECS 用于我们的应用程序,但 WebUI 中的进程获得了相当无用的名称,例如 66ef25674344。我希望它们以它们运行的​​ ECS 任务 ID 命名。

【问题讨论】:

    标签: docker sidekiq amazon-ecs


    【解决方案1】:

    我自己想通了。 Sidekiq 使用DYNO 环境变量(可能是Heroku 事物)或运行它的服务器的主机名(参见source)作为进程名称。在 Docker 中,主机名默认设置为容器 ID,这并不能真正反映我们在 ECS UI 中看到的任何内容。

    如果我们在进程启动之前设置DYNO envvar,它将被用作进程名称。这仍然可以在config/initializers/sidekiq.rb 中完成,因此我们不需要在 shell 脚本中解析 JSON 左右:

    if ENV.key?("ECS_CONTAINER_METADATA_FILE")
      ENV["DYNO"] = JSON.parse(
        File.read(ENV["ECS_CONTAINER_METADATA_FILE"])
      )["TaskARN"].split("/").last
    end
    

    注意ECS_CONTAINER_METADATA_FILE envvar 和它所引用的文件默认是禁用的。 Here the guide to enable the metadata file.

    【讨论】:

      猜你喜欢
      • 2019-05-09
      • 2011-11-24
      • 1970-01-01
      • 2017-01-20
      • 1970-01-01
      • 2017-08-14
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      相关资源
      最近更新 更多