AWS Извлечение тома AttachmentID Boto3 - PullRequest
0 голосов
/ 13 февраля 2020

Мне нужно создать список всех томов ebs и вложений экземпляров в моей учетной записи. Я понимаю, как это сделать, но я бы хотел использовать Python. Как извлечь идентификатор вложения для всех используемых томов в моей учетной записи?

    # Get all in-use volumes in all regions  
    result = ec2.describe_volumes( Filters=[{'Name': 'status', 'Values': ['in-use']}])
    for volume in result['Volumes']:
        attachment = ec2.describe_volumes().get('AttachmentsID,[]')
        print(attachment)

1 Ответ

0 голосов
/ 13 февраля 2020

describe_volumes() уже возвращает необходимую информацию в 'Attachments'. Чтобы распечатать все тома, вам нужно будет запросить все регионы и обработать нумерацию страниц.

import boto3
import botocore.exceptions

session = boto3.Session()
for region in session.get_available_regions('ec2'):
    print(region)
    try:
        ec2 = session.client('ec2', region_name=region)
        for res in ec2.get_paginator('describe_volumes').paginate(Filters=[{'Name': 'status', 'Values': ['in-use']}]):
            for volume in res['Volumes']:
                for attachment in volume['Attachments']:
                    print(attachment['InstanceId'], attachment['VolumeId'])
    except botocore.exceptions.ClientError as e:
        if e.response['Error']['Code'] == 'AuthFailure':
            print('No access to', region)
        else:
            raise
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...