Boto3 获取 EC2 实例的卷
Boto3 get EC2 instance's volume
我正在尝试使用 boto 3 获取 aws 实例的 volume-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.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]
例如您只需遍历即可获得卷 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)
然后 volume_id_list[0] 包含第一个磁盘,volume_id_list[1] 第二个等等
见https://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Instance.volumes
使用 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
我正在尝试使用 boto 3 获取 aws 实例的 volume-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.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]
例如您只需遍历即可获得卷 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)
然后 volume_id_list[0] 包含第一个磁盘,volume_id_list[1] 第二个等等
见https://boto3.readthedocs.io/en/latest/reference/services/ec2.html#EC2.Instance.volumes
使用 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