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

如何通过AWS CLI合并命令获取实例ID、名称及详细OS信息

合并AWS CLI命令获取完整EC2实例信息

要整合SSM的操作系统信息和EC2的实例名称标签,最直接的方式是用jq工具关联两个命令的输出,通过InstanceId字段匹配数据。以下是具体实现步骤:

1. 核心思路

  • 从aws ssm describe-instance-information提取InstanceId、PlatformType、PlatformName
  • 从aws ec2 describe-instances提取InstanceId、实例名称标签(Name)
  • 用jq将两个数据集按InstanceId合并,输出包含所有目标字段的结果

2. 完整命令

直接执行以下命令即可得到合并后的结构化数据(支持JSON或表格输出):

输出为JSON格式

jq -n \
--argjson ssm_data "$(aws ssm describe-instance-information --query "InstanceInformationList[*].{InstanceId:InstanceId, PlatformType:PlatformType, PlatformName:PlatformName}" --output json)" \
--argjson ec2_data "$(aws ec2 describe-instances --query "Reservations[*].Instances[*].{InstanceId:InstanceId, Name:Tags[?Key=='Name'].Value|[0]}" --output json | jq -s 'flatten')" \
'$ssm_data | map(. + ($ec2_data | .[] | select(.InstanceId == .[].InstanceId)))'

输出为表格格式

如果需要更易读的表格,可在上述命令后追加管道转成表格:

jq -n \
--argjson ssm_data "$(aws ssm describe-instance-information --query "InstanceInformationList[*].{InstanceId:InstanceId, PlatformType:PlatformType, PlatformName:PlatformName}" --output json)" \
--argjson ec2_data "$(aws ec2 describe-instances --query "Reservations[*].Instances[*].{InstanceId:InstanceId, Name:Tags[?Key=='Name'].Value|[0]}" --output json | jq -s 'flatten')" \
'$ssm_data | map(. + ($ec2_data | .[] | select(.InstanceId == .[].InstanceId)))' | \
aws cli convert-output-format --input-format json --output-format table

3. 注意事项

  • 只有已激活SSM Agent的实例会出现在SSM查询结果中,未安装/未激活的实例将缺失操作系统信息
  • 如果实例没有设置Name标签,对应的Name字段会显示为null
  • 确保已配置好AWS CLI的权限,同时具备ssm:DescribeInstanceInformation和ec2:DescribeInstances权限

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 19:03:13