Python Boto3获取EC2实例';s体积
我正在尝试使用BOTO3获取aws实例的卷id列表,我正在获取某种集合管理器,但我不知道如何获取其中的数据Python Boto3获取EC2实例';s体积,python,amazon-web-services,aws-sdk,boto3,Python,Amazon Web Services,Aws Sdk,Boto3,我正在尝试使用BOTO3获取aws实例的卷id列表,我正在获取某种集合管理器,但我不知道如何获取其中的数据 import boto3 ec2 = boto3.resource('ec2', region_name='us-west-2') instance = ec2.Instance('i-xxxxxx') volumes = instance.volumes.all() print volumes 我得到的答案是: ec2.Instance.volumesCollection(ec2.In
import boto3
ec2 = boto3.resource('ec2', region_name='us-west-2')
instance = ec2.Instance('i-xxxxxx')
volumes = instance.volumes.all()
print volumes
我得到的答案是:
ec2.Instance.volumesCollection(ec2.Instance(id='i-xxxxxx'), ec2.Volume)
如何使用“ec2.Volume”获取卷id
谢谢,
Cfir.这只是一个对象的列表,所以
for v in volumes:
print(v.id)
如果要获取id列表,请执行以下操作:
l = [v.id for v in volumes]
e、 g.只需在卷上迭代即可获得卷ID和大小
for volume in volumes:
print (volume.id, volume.size)
迭代器由
ec2.Instance.volumesCollection返回
您可以使用如下代码提取卷ID
volume_id_list=[]
for item in instance.volumes.all():
volume_id_list.append(item.id)
然后,卷id列表[0]包含第一个磁盘,卷id列表[1]包含第二个磁盘等
请参见使用EC2客户端:
ec2_client = boto3.client('ec2',
aws_access_key_id='XYZ',
aws_secret_access_key='XYZ',
region_name='us-east-1')
volumes = ec2_client.describe_instance_attribute(InstanceId='i-0b30bea4e05579def',
Attribute='blockDeviceMapping')
您也可以使用cli。示例:我正在尝试获取附加的根卷列表
aws ec2 describe-volumes --filters "Name=attachment.device,Values=*sda1" --query "Volumes[*].[VolumeId]" --output text --profile=my_genius_aws_profile
我在尝试迭代volumesnevermind时出错。。我添加了.all()
调用,得到了您引用的可迭代对象