我们将ECS用于我们的应用程序,但是WebUI中的进程获得了相当无用的名称,例如66ef25674344
。我希望它们以运行时所用的ECS任务ID命名。
答案 0 :(得分: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
引用的环境和文件。 Here the guide to enable the metadata file。