You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过AWS EC2 API获取指定EC2实例关联的EBS卷?

获取EC2实例关联EBS卷的方法

AWS EC2 API提供了直接获取特定实例挂载EBS卷的能力,核心通过describe-instances接口实现,不同SDK和工具都有对应封装:

1. AWS CLI 方式

使用aws ec2 describe-instances命令,指定实例ID过滤结果,提取其中的EBS卷信息:

aws ec2 describe-instances --instance-ids i-1234567890abcdef0 --query 'Reservations[*].Instances[*].BlockDeviceMappings[*]' --output json

该命令返回实例的所有块设备映射,其中Ebs字段包含对应EBS卷的ID、挂载状态等详细信息。

2. 编程语言SDK示例

以Python的Boto3为例,封装后的方法可直接传入实例ID获取关联EBS卷:

import boto3

def get_attached_ebs_volumes(instance_id):
    ec2 = boto3.client('ec2')
    response = ec2.describe_instances(InstanceIds=[instance_id])
    volumes = []
    for reservation in response['Reservations']:
        for instance in reservation['Instances']:
            for device in instance['BlockDeviceMappings']:
                if 'Ebs' in device:
                    volumes.append(device['Ebs']['VolumeId'])
    return volumes

# 调用示例
print(get_attached_ebs_volumes('i-1234567890abcdef0'))

其他语言SDK(如Java、Go、JavaScript)也有对应的describeInstances方法,传入实例ID参数后,从返回结果的blockDeviceMappings字段中提取EBS卷信息即可。

3. 注意事项

  • 调用接口需具备对应IAM权限:至少需要ec2:DescribeInstances权限
  • 返回结果包含根卷和所有附加的非根EBS卷
  • 若实例处于终止或停止状态,仍能返回曾经挂载的卷信息(但卷可能已被分离)

内容的提问来源于stack exchange,提问作者Spicy sauce

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 14:17:11