boto3EC2 DESCRIBE实例中的分页

Pagination in boto3 ec2 describe instance(boto3EC2 DESCRIBE实例中的分页)

本文介绍了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'])

这篇关于boto3EC2 DESCRIBE实例中的分页的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本文标题为:boto3EC2 DESCRIBE实例中的分页

基础教程推荐