boto3 ecs客户端分页问题
Posted
技术标签:
【中文标题】boto3 ecs客户端分页问题【英文标题】:boto3 ecs client pagination issue 【发布时间】:2018-10-22 03:47:52 【问题描述】:我正在尝试使用 python boto3 列出 aws ECS 集群中的所有服务,它最多只能列出 100 个服务。所以尝试使用分页 API。
import boto3
session = boto3.Session(profile_name='dev')
client = session.client('ecs')
paginator = client.get_paginator('list_services')
resp = paginator.paginate( cluster='test')
for i in resp:
print resp
我尝试循环使用resp
,但它没有列出所有服务。它确实提供了nextToken
。
知道如何使用 nextToken
并使用 python 获取 ECS 集群中的所有服务。
【问题讨论】:
【参考方案1】:你的循环有缺陷。将其修复为:
for i in resp:
print i
使用 nextToken 完成您所要求的事情的一种方法:
resp = paginator.paginate( cluster='test')
print resp
while 'nextToken' in resp:
resp = paginator.paginate( cluster='test', nextToken=resp['nextToken'])
print resp
【讨论】:
我实际上在那个for循环中使用print i
,这是发布问题时的拼写错误..
@Pasha 那么我发布的解决方案应该可以工作,或者您可以根据自己的需要进行调整。以上是关于boto3 ecs客户端分页问题的主要内容,如果未能解决你的问题,请参考以下文章
如何在Python AWS boto API中获取EC2实例ID的容器实例列表
使用 boto3 ECS 获得“服务创建不是幂等的”。为啥?