【问题标题】:I am trying to list all cluster in aws ECS cluster using python boto3, it can only list 100 cluster maximum and i want 300 cluster我正在尝试使用 python boto3 列出 aws ECS 集群中的所有集群,它最多只能列出 100 个集群,我想要 300 个集群
【发布时间】:2020-10-14 19:45:10
【问题描述】:

session = boto3.Session()

client = session.client('ecs')

cluster = client.list_clusters()

clusterArns = cluster["clusterArns"]
print(clusterArns)
for i in clusterArns:
    print(i.split('/')[1])

【问题讨论】:

    标签: python amazon-web-services boto3 amazon-ecs


    【解决方案1】:

    如果有任何其他结果页面,响应将包含nextToken

    如果在响应中返回,则需要再次运行 client.list_clusters() 并传入此参数以获取下一页。

    单个页面的MaxResults 只能在 1 到 100 之间,因此无法增加返回的最大项目数。

    您可以从文档中找到有关 list_clusters 函数的更多信息。

    【讨论】:

    • import boto3 from pprint import pprint client = boto3.client('ecs') response = client.list_clusters(maxResults=100) pprint (response['clusterArns']) next_token = response['nextToken' ] paginator = client.get_paginator('list_clusters') response_iterator = paginator.paginate( cluster="testlist", PaginationConfig={ 'MaxItems': 100, 'PageSize': 100, 'StartingToken': next_token }) for i in response_iterator: pprint (i['serviceArns'])
    • 回溯(最近一次调用最后一次):文件“test_6.py”,第 7 行,在 next_token = response['nextToken'] KeyError: 'nextToken'
    • 这意味着该响应中不存在nextToken。请先尝试if "nextToken" in response: 进行验证。
    • 但是在 boto3 文档中,他们说作为回报,给出 nextToken 值。但是当我得到响应时,没有出现 nextToken 值。为什么?返回响应语法 { 'clusterArns': [ 'string', ], 'nextToken': 'string' }
    • {'clusterArns': [], 'ResponseMetadata': {'RequestId': '1979ebfb-69aa-4213-abf5-75b345a41f08', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x -amzn-requestid':'1979ebfb-69aa-4213-abf5-75b345a41f08','content-type':'application/x-amz-json-1.1','content-length':'18','date': '星期三,2020 年 6 月 24 日 12:57:34 GMT'},'RetryAttempts':0}} 我只得到这个。
    猜你喜欢
    • 2019-07-07
    • 2023-03-30
    • 1970-01-01
    • 2023-03-04
    • 2018-12-23
    • 2016-06-28
    • 2018-07-22
    • 1970-01-01
    • 2018-12-12
    相关资源
    最近更新 更多