【问题标题】:Boto3 get EC2 instance's volumeBoto3 获取 EC2 实例的卷
【发布时间】:2020-06-21 05:04:55
【问题描述】:

我正在尝试使用 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

谢谢, 审阅。

【问题讨论】:

    标签: python amazon-web-services aws-sdk boto3


    【解决方案1】:

    这只是对象的可迭代

    for v in volumes:
        print(v.id)
    

    如果你想得到一个 id 列表:

    l = [v.id for v in volumes]
    

    【讨论】:

      【解决方案2】:

      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

      【讨论】:

        【解决方案3】:

        使用 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')
        

        【讨论】:

          【解决方案4】:

          例如您可以简单地通过迭代获得卷 ID 和大小。

          for volume in volumes:
              print (volume.id, volume.size)
          

          【讨论】:

          • 我在尝试迭代卷时遇到错误
          • 没关系..我添加了.all() 调用并获得了您引用的可迭代对象
          【解决方案5】:

          您也可以使用 cli。示例我正在尝试获取附加的根卷列表

          aws ec2 describe-volumes --filters "Name=attachment.device,Values=*sda1" --query "Volumes[*].[VolumeId]"  --output text --profile=my_genius_aws_profile
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2020-01-06
            • 2021-05-17
            • 2021-10-16
            • 1970-01-01
            • 2021-07-05
            • 2020-07-20
            • 2015-11-19
            • 2018-09-04
            相关资源
            最近更新 更多