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 检索 EC2 实例的公共 dns

在 Boto3 中获取具有特定标签和值的 EC2 实例列表

使用 boto3 ECS 获得“服务创建不是幂等的”。为啥?

如何使用 boto3 从连接到 ECS 任务的网络接口获取公共 IP

如何使用 boto3 在集群中启动 EC2 实例