AWS EC2 描述实例-按多个 EC2 标签进行过滤?

AWS EC2 描述实例-按多个 EC2 标签进行过滤?

我正在尝试动态创建一个包含我所有 ec2 实例私有 IP 的主机文件映射,以用作我的 ec2 远程 ssh 服务器上的 /etc/hosts。

我有使用正常“名称”标记的实例,例如 prod-database-01 和“别名”标记,例如 db-01。目标是能够从我的 ssh 框中使用“ssh db-01”,并且即使服务器刚刚启动或自动缩放也能拥有正确的映射。

对于任何状态为“正在运行”的实例,即活动服务器,我试图让 cli 将名称、别名和私有 IP 地址输出为 JSON 或类似内容,然后我可以为其创建一个 hosts 文件。

但是,我在尝试输出第二个“别名”标签时遇到困难。

这是我目前所得到的输出“名称”、“PrivateIP”和“状态”。

想知道如何迭代并输出附加别名标签吗?

aws ec2 describe-instances --filters "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].[ [Tags[?Key==`Name`].Value][0][0],PrivateIpAddress,State.Name ]' --output json

答案1

如果您像名称查询一样添加别名标签查询,它就可以工作:

aws ec2 describe-instances --filters  "Name=instance-state-name,Values=running" --query 'Reservations[].Instances[].[ [Tags[?Key==`Name`].Value][0][0],[Tags[?Key==`Alias`].Value][0][0],PrivateIpAddress,State.Name ]' --output json

相关内容