Python Boto3 для ECS Требуется помощь - PullRequest
0 голосов
/ 13 февраля 2020

Я довольно новичок в Python и его модулях. Я пытаюсь перечислить все кластеры в моей учетной записи AWS ECS. У меня работает около 13 кластеров.

Приведенный ниже код печатает только один кластер, тогда как я хочу напечатать все кластеры. Является ли их для l oop, который я могу использовать?

Ниже печатает только один кластер:

import boto3
client = boto3.client('ecs')
response = client.list_clusters(
    maxResults=50
)
print(response)

Ниже для цикла не работает и выдает ошибку

import boto3
client = boto3.client('ecs')
for response in client.list_cluster():
    print(response)

Любое руководство будет высоко оценено.

1 Ответ

0 голосов
/ 14 февраля 2020

Если вы посмотрите на list_clusters api, синтаксис ответа:

 Response Syntax

{
    'clusterArns': [
        'string',
    ],
    'nextToken': 'string'
}

, что означает, что вы получите список ([]) из ARNs , которые являются уникальными идентификаторами ресурса в AWS.

Используйте description_clusters api, чтобы затем получить описание, как сказал @jordanm:

import boto3
client = boto3.client('ecs', region_name='us-east-2')
clusters = client.list_clusters(
    maxResults=50
)
clusters_arns = clusters['clusterArns']

clusters_descriptions = client.describe_clusters(
    clusters=clusters_arns
)

for cluster in clusters_descriptions['clusters']:
    print(cluster['clusterName'])

result это что-то вроде:

prod_nam
eu_nam
someothercluster
...