我正在尝试使用 python boto3 列出 aws ECS 集群中的所有集群,它最多只能列出 100 个集群,我想要 300 个集群
Posted
技术标签:
【中文标题】我正在尝试使用 python boto3 列出 aws ECS 集群中的所有集群,它最多只能列出 100 个集群,我想要 300 个集群【英文标题】: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 【发布时间】: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])
【问题讨论】:
【参考方案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 行,在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 我只得到这个。以上是关于我正在尝试使用 python boto3 列出 aws ECS 集群中的所有集群,它最多只能列出 100 个集群,我想要 300 个集群的主要内容,如果未能解决你的问题,请参考以下文章