【问题标题】:ECS Task definition by tagECS 按标签定义任务
【发布时间】:2019-03-23 01:50:23
【问题描述】:

我们已经从 CI 系统自动创建 Fargate 服务和任务定义。除任务定义外,所有内容都被命名,任务定义仅获取生成的 ID。我们用我们需要的信息标记它们,但是除了询问所有任务定义的列表并循环、描述它们并获取标记之外,找不到简单的方法来按标记查找任务定义。

能否告诉我是否有其他方法 - 基本上是在创建时将某些内容放入任务定义中,以便稍后我可以说“找到我那个任务定义”?

【问题讨论】:

  • 任务修订号?
  • 这就是重点——这就是问题所在。我们有构建 - 构建被我们的 ci 系统的版本号标记 - 这被标记到 git - 它们被变成一个具有相同编号的容器 - 我们有很多依赖它。麻烦的是,并不是每个构建都因为各种原因被部署,可能就像失败一样简单——所以任务定义修订不对应。我们想要发布版本 3123 - 我们在 我们的 内部版本号中考虑 - 然后必须找到相应的任务定义修订版。

标签: amazon-web-services amazon-ecs aws-fargate


【解决方案1】:

实际上 - 我的一位同事发现了 - 我告诉他在这里发帖,但我猜他没有。你只需这样做:

aws resourcegroupstaggingapi get-resources --region ${amazon_region} --resource-type-filters ecs:task-definition --tag-filters Key=*******,Values=***** Key=******,Values=******  --max-items 1 | jq --raw-output '.ResourceTagMappingList[].ResourceARN'

【讨论】:

    【解决方案2】:

    我在这里参加聚会已经很晚了,但我认为不可能按标签引用任务定义(至少在翻阅 AWS 文档一小时后)。对于我们的 CD 设置,我们必须运行一个脚本来获取所有活动的任务定义并找到具有我们想要的发布标签值的任务定义。它看起来像这样:

    """
    Fetches a task definition based on family name and the `release` tag value.
    
    Usage:
        python3 -m app.scripts.get_task_definition TASK_FAMILY RELEASE_TAG
    """
    
    import sys
    
    import boto3
    
    task_family = sys.argv[1]
    release = sys.argv[2]
    
    ecs_client = boto3.client("ecs", region_name="us-west-2")
    
    # Sort by newest first
    list_response = ecs_client.list_task_definitions(familyPrefix=task_family, status="ACTIVE", sort="DESC")
    
    for arn in list_response["taskDefinitionArns"]:
        task_definition = ecs_client.describe_task_definition(taskDefinition=arn, include=["TAGS"])
        task_release_tags = [tag for tag in task_definition["tags"] if "release" in tag["key"]]
        task_release = task_release_tags[0].get("value", None) if task_release_tags else None
        if task_release == release:
            print(arn)
    

    【讨论】:

      猜你喜欢
      • 2020-10-15
      • 2017-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-24
      • 2020-03-21
      • 1970-01-01
      • 2016-06-22
      相关资源
      最近更新 更多