boto3EC2 DESCRIBE实例中的分页
问题描述
我在boto3中进行分页时遇到问题,&;无法获取AWS帐户中的所有实例。
仅获取以下实例的50%(2000个左右,因为有4000个)
下面是我的代码
import boto3
ec2 = boto3.client('ec2')
paginator = ec2.get_paginator('describe_instances')
response = paginator.paginate().build_full_result()
ec2_instance = response['Reservations']
for instance in ec2_instance:
print(instance['Instances'][0]['InstanceId'])
解决方案
来自describe_instances()
的响应为:
{
'Reservations': [
{
'Groups': [
{
'GroupName': 'string',
'GroupId': 'string'
},
],
'Instances': [
{
'AmiLaunchIndex': 123,
...
请注意,响应为:
- 词典
- 其中
Reservations
是包含以下内容的列表:Instances
,列表
因此,代码确实需要遍历所有保留和实例。
目前,您的代码正在循环访问预留(错误地将它们称为实例),然后仅从该预留中检索第一个([0]
)实例。
您可能需要如下代码:
for reservation in response['Reservations']:
for instance in reservation['Instances']:
print(instance['InstanceId'])
相关文章