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

如何通过AWS CLI查询AMI及关联EBS卷块设备映射详情

查询指定所有者AWS AMI全量详情(含EBS块设备信息)卡顿解决方案

故障原因

查询卡住、字段获取失败问题由两个核心错误导致:

  • --owners参数为空:未指定所有者时,AWS CLI会拉取当前身份有权限访问的所有AMI,包括数十万公共社区AMI、AWS市场AMI,数据量极大会直接导致进程卡住
  • JMESPath查询语法错误:你写的BlockDeviceMappings:[Ebs:{SnapshotID}]不符合JMESPath语法规范,且字段名大小写错配(API返回字段为SnapshotId而非SnapshotID),会导致解析异常无法正常返回结果

可直接执行的正确命令

将命令中--owners后的self替换为你需要查询的目标所有者标识:查自有账号填self,查AWS官方公共镜像填amazon,查其他第三方账号填对应的12位AWS账号ID,多个所有者用空格分隔即可。命令内置按创建时间排序逻辑,会返回镜像ID、创建时间、镜像名称、是否公共镜像、架构,以及每个绑定EBS卷的快照ID、卷大小、卷类型、实例终止时是否删除卷的全量信息:

aws ec2 describe-images \
  --owners self \
  --query 'sort_by(Images, &CreationDate)[*].[ImageId, CreationDate, Name, Public, Architecture, BlockDeviceMappings[*].Ebs.[SnapshotId, VolumeSize, VolumeType, DeleteOnTermination]]' \
  --output text

可读性优化方案

如果觉得text格式下嵌套的块设备信息不易读,可以换成表格格式输出:

aws ec2 describe-images \
  --owners self \
  --query 'sort_by(Images, &CreationDate)[*].[ImageId, CreationDate, Name, BlockDeviceMappings[*].Ebs.[SnapshotId, VolumeSize, VolumeType]]' \
  --output table

注意事项

  • 调用describe-images接口时必须加--owners或--image-ids过滤条件,无过滤拉取全量镜像列表是该接口卡顿的最常见原因
  • AWS EC2 API返回的字段严格遵循小驼峰命名规则,编写查询表达式时注意大小写匹配,否则会出现字段空值问题
  • 单个AMI可能绑定多个EBS卷,输出结果中每个镜像会对应多行块设备信息,属于正常情况

内容的提问来源于stack exchange,提问作者Cléber Cavlcanti

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 14:45:34