使用boto3从ec2资源中检索ec2实例对象组

时间:2017-09-29 21:23:28

标签: amazon-web-services amazon-ec2 boto3

问题解答:

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

ec2_service_resource = boto3.resource(' ec2',region)

results = ec2_service_resource.instances.filter(Filters = [{'姓名':'实例 - 州名','值':[' ;运行']}],MaxResults = 10)

根据boto3文档,我应该能够使用第一次调用的响应中的NextToken检索下一组结果。 (https://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.ServiceResource.instances

问题:

我无法在响应对象中找到NextToken字符串。我错过了什么吗?有没有办法使用ec2资源对象实现这个目标?

1 个答案:

答案 0 :(得分:1)

我观察到该调用(ec2_service_resource.instances.filter(Filters = [{'Name':'instance-state-name','Values':['running']}],MaxResults = 10))返回一个可迭代ec2实例的数量,根据MaxResults参数中的指定,该实例仅计算10个实例对象。

但是,尽管我们不断迭代此迭代过程,但boto3静默对AWS进行了额外的API调用,并获取了下一批(10)实例。 我可以确认这里不需要NextToken,因为在可迭代对象中进行自动迭代将使下一个数据在响应中可用。

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