Amazon web services 使用boto3从ec2资源检索ec2实例对象组

Amazon web services 使用boto3从ec2资源检索ec2实例对象组,amazon-web-services,amazon-ec2,boto3,Amazon Web Services,Amazon Ec2,Boto3,问题描述: 从一个特定的aws区域,我需要在组中运行实例对象的列表(比如10个组)。我正在使用服务资源筛选器,如下所示 ec2_服务_资源=两个资源('ec2',区域) 结果=ec2_服务_资源.instances.filter(过滤器=[{'Name':'instance state Name','Values':['running']}],MaxResults=10) 根据boto3文档,我应该能够从第一次调用的响应中使用NextToken检索下一组结果。 () 问题: 我无法在响应对象中找

问题描述:

从一个特定的aws区域,我需要在组中运行实例对象的列表(比如10个组)。我正在使用服务资源筛选器,如下所示

ec2_服务_资源=两个资源('ec2',区域)

结果=ec2_服务_资源.instances.filter(过滤器=[{'Name':'instance state Name','Values':['running']}],MaxResults=10)

根据boto3文档,我应该能够从第一次调用的响应中使用NextToken检索下一组结果。 ()

问题:

我无法在响应对象中找到NextToken字符串。我错过什么了吗?有什么方法可以使用ec2资源对象实现这一点吗?

我观察到调用(ec2_service_resource.instances.filter(Filters=[{'Name':'instance state Name','Values':['running']}],MaxResults=10])返回一个ec2实例的iterable,按照MaxResults参数中的指定,它只计算10个实例对象

然而,当我们继续迭代这个iterable时,boto3会默默地对AWS进行额外的API调用,并获取下一批(10)实例。 我可以确认这里不需要NextToken,因为迭代iterable会自动使下一个数据在响应中可用


在这种情况下,NextToken字符串似乎是无用的。不确定为什么文档中有这些误导性信息。

您有超过10个实例吗?是的。这是一个生产帐户,因此实例的数量预计会更高,并且只会随着时间的推移而增加。