【问题标题】:ECS Get Task ARN from Container Runtime IdECS 从容器运行时 ID 获取任务 ARN
【发布时间】:2021-06-19 17:19:02
【问题描述】:

在 AWS ECS 中,docker 容器的主机名是容器运行时 ID。有没有什么方法可以给定容器 rumtime id,可以获取容器运行所在的任务 ARN?

【问题讨论】:

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


    【解决方案1】:

    没有任何特定的 AWS 命令​​可以从容器运行时 ID 中获取任务 ARN。但这可以使用 aws ecs 的list-tasksdescribe-tasks 命令来实现,前提是您事先知道集群和服务名称。

    以下是您如何实现此目的的想法:

    tasksList=`aws ecs list-tasks --cluster mycluster --service-name myservice | awk '/mycluster/ {print}' | sed 's/,$//' | awk '{ sub(/^[ \t]+/, ""); print }' | awk '{printf "%s ",$0} END {print ""}'`
    taskDesc="aws ecs describe-tasks --cluster mycluster --tasks ${tasksList}"
    eval $taskDesc | awk '/taskArn|runtimeId/ {print $0}' | awk '{ sub(/^[ \t]+/, ""); print }' | awk '!visited[$0]++' | awk '/taskArn/ {$0=$0"->"} 1'
    

    这会给你一个类似这样的输出:

    "taskArn": "arn:aws:ecs:<aws_region>:<account_id>:task/mycluster/043de9ab06bb41d29e97576f1f1d1d33",->
    "runtimeId": "191c90bae67844124ff2d079f4de997dc8cb9e3c93cd451d931c806283ea527d",
    "runtimeId": "61e6fa6e1cbb5039e1c4df31d5c522b9439c22fbeff3c9cc1fb4429ffbb5a94d",
    "taskArn": "arn:aws:ecs:<aws_region>:<account_id>:task/mycluster/14478901e8364466b8fd8236d6a66c5e",->
    "runtimeId": "b679c5139f019f526c4301c8cc511723abd6aed3fa8cf9c397147d33275a860c",
    "runtimeId": "0e727f660616df970b2cf767ea389bee97cd748ea9e09266cb5ee651ad2d2971",
    "runtimeId": "ee7fb30715d9ff325eebcfacdde978179f07b1e3bf91a0dac92abd3b54970307",
    "taskArn": "arn:aws:ecs:<aws_region>:<account_id>:task/mycluster/23d037af17f54a59afe50f810afdecf0",->
    "runtimeId": "67d4ebea82e6e6622171816e1aef53489070aea5b03d5942e8e41c2dc4f49fd3",
    

    在每个taskArn 行下方,有多个runtimeId 行指定在该任务下运行的容器的容器运行时ID。

    希望这会有所帮助。快乐的脚本。

    【讨论】:

      猜你喜欢
      • 2018-07-26
      • 2020-04-30
      • 1970-01-01
      • 2019-11-08
      • 2017-01-06
      • 1970-01-01
      • 2022-11-03
      • 1970-01-01
      • 2018-10-10
      相关资源
      最近更新 更多