Определение задачи ECS по тегу - PullRequest
0 голосов
/ 23 марта 2019

мы автоматизировали создание сервисов fargate и определений задач из нашей системы CI. Все названо, кроме определений задач, которые просто получают сгенерированный идентификатор. Мы помечаем их необходимой нам информацией, но не можем найти простой способ найти определение задачи по тегу, кроме запроса списка всех определений задач и циклического прохождения, описания их и получения тегов.

Может ли кто-нибудь сказать мне, есть ли другой способ - просто поместить что-то в определение задачи во время создания, что я могу просто сказать "найди мне , что определение задачи" позже?

Ответы [ 2 ]

0 голосов
/ 20 апреля 2019

на самом деле - один из моих коллег понял это - я велел ему написать здесь, но, думаю, он этого не сделал. Вы просто делаете это:

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'
0 голосов
/ 19 апреля 2019

Я довольно поздно опаздываю на вечеринку, но не думаю, что можно ссылаться на определение задачи по тегу (по крайней мере, через час после заливки документации 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...