【问题标题】:Collecting all AWS EBS volume details in csv format以 csv 格式收集所有 AWS EBS 卷详细信息
【发布时间】:2021-09-21 15:33:24
【问题描述】:

我正在尝试创建一个 boto3 脚本来获取 EBS 卷的详细信息,例如 (VolumeID,InstanceID),但由于有超过 50 个 EBS 卷,我无法了解如何使用分页。请帮忙

【问题讨论】:

  • 脚本是什么?为什么它不起作用?有什么错误吗?
  • 我正在从 Lambda 运行以下脚本,但它仅列出 5 EBS import boto3 b = boto3.session.Session() ec2 = b.client('ec2') page_iterator = ec2.get_paginator( 'describe_volumes').paginate() for page in page_iterator: for vol in page['Volumes']: print(vol)

标签: python amazon-web-services boto3


【解决方案1】:

describe_volumes() 方法似乎最多返回 500 卷。

您可以再次调用该函数,将先前调用返回的NextToken 传递到后续调用的NextToken 字段。这将从上一个结果集完成的地方继续。

或者,您可以使用describe_volumes() paginator

import boto3

ec2_client = boto3.client('ec2')

paginator = ec2_client.get_paginator('describe_volumes')

response_iterator = paginator.paginate()

for page in response_iterator:
    for volume in page['Volumes']:
        print(volume['VolumeId'])

【讨论】:

  • 那行得通。您还可以帮助我使用分页过滤器的正确语法吗:目前它仅列出使用中 response_iterator = paginator.paginate(Filters=[{'Name': 'status', 'Values': ['in-use'] }]) 我如何也添加可用的?
  • Filters=[{'Name': 'status', 'Values': ['available', 'in-use']}]
猜你喜欢
  • 2017-07-24
  • 1970-01-01
  • 2012-12-30
  • 2017-10-20
  • 1970-01-01
  • 2020-09-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多