问题解答:
从特定的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资源对象实现这个目标?
答案 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在文档中有此误导性信息。