繁体   English   中英

过滤 Boto3“client.describe_volumes”响应

[英]Filter Boto3 "client.describe_volumes" response

我正在尝试使用 Boto3 从一些 EBS 卷中提取数据,特别是:'Device'、'InstanceId' 和 'AvailabilityZone'。

这是我的代码:

import boto3

AWS_REGION = "us-east-1"
client = boto3.client('ec2', region_name=AWS_REGION)


volume_id_list = ['vol-02e15c9d70exxxxx', 'vol-0bbcb1b0e98xxxxx'] 


for vol_id in volume_id_list:

    response = client.describe_volumes(
        VolumeIds=[
        vol_id,
        ],
    )

    print(response)

我收到以下响应,尽管数据在那里但由于格式原因我无法提取它:

{'Volumes': [{'Attachments': [{'AttachTime': datetime.datetime(2022, 11, 23, 18, 18, 9, tzinfo=tzutc()), 'Device': '/dev/xvda', 'InstanceId': 'i-xxxxxxxxxxx', 'State': 'attached', 'VolumeId': 'vol-02e15c9xxxxxxx', 'DeleteOnTermination': True}], 'AvailabilityZone': 'us-east-1a', 'CreateTime': datetime.datetime(2022, 11, 23, 18, 18, 9, 713000, tzinfo=tzutc()), 'Encrypted': False, 'Size': 8, 'SnapshotId': 'snap-xxxxxxxxxxx', 'State': 'in-use', 'VolumeId': 'vol-xxxxxxxxxxx', 'Iops': 100, 'VolumeType': 'gp2', 'MultiAttachEnabled': False}], 'ResponseMetadata': {'RequestId': 'xxxxxxx-eb66-4be9-a2c6-0xxxxxxxxx', 'HTTPStatusCode': 200, 'HTTPHeaders': {'x-amzn-requestid': 'xxxxxx-eb66-4be9-a2c6-xxxxxxxx', 'cache-control': 'no-cache, no-store', 'strict-transport-security': 'max-age=31536000; includeSubDomains', 'content-type': 'text/xml;charset=UTF-8', 'content-length': '1201', 'date': 'Wed, 07 Dec 2022 17:07:50 GMT', 'server': 'AmazonEC2'}, 'RetryAttempts': 0}}

有没有办法过滤响应,以便我只能接收“设备”、“InstanceId”和“AvailabilityZone”?

提前致谢

当然@John Rotenstein,这是完整的答案:

这就是我获得所需数据的方式:

import boto3

AWS_REGION = "us-east-1"
client = boto3.client('ec2', region_name=AWS_REGION)


volume_id_list = ['vol-02e15c9d70exxxxx', 'vol-0bbcb1b0e98xxxxx'] 


for vol_id in volume_id_list:

    response = client.describe_volumes(
        VolumeIds=[
        vol_id,
        ],
    )

    device = response['Volumes'][0]['Attachments'][0]['Device']
    instance = response['Volumes'][0]['Attachments'][0]['InstanceId']
    az = response['Volumes'][0]['AvailabilityZone']

    print(device)
    print(instance)
    print(az)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM