[英]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.