使用 awscli --query 返回每个实例 ID 一行的文本值列表

LHW*_*ard 4 aws-cli jmespath

我在 AWS 中有具有相同 ReservationId 的实例(它们是同时启动的,并且 AmiLaunchIndex 为 0 到 x )。我的目标是生成每个实例一行的文本输出,如下所示。为了清楚起见,我添加了列标题。

OwnerId      ReservationId InstanceId  PrivateIpAddress AmiLaunchIndex
12345678910  r-poiu4567    i-asdf1234  10.0.0.1         0
12345678910  r-poiu4567    i-qwer4312  10.0.1.1         1
... etc ...
Run Code Online (Sandbox Code Playgroud)

在 jmespath gitter 频道中,建议使用 map 函数作为实现此目的的一种方法,但我不知道如何使用该函数。有什么建议么?

小智 11

--query Reservations[*].Instances[*].[InstanceId] --output text
Run Code Online (Sandbox Code Playgroud)

只需添加小括号即可


Fré*_*nri 6

你需要运行以下命令

aws ec2 describe-instances \
    --filters "Name=reservation-id,Values=r-poiu4567" 
    --query 'Reservations[*].{owner:OwnerId,ReservationId:ReservationId,instance:Instances[].InstanceId | [0]}' \ 
    --output text
Run Code Online (Sandbox Code Playgroud)

您可以添加您想要的其他参数

这将提供所需的输出(一行中的所有元素),没有标题,例如

i-08eec92943c9cc576 325979260958    r-0b13a131efa6b3af8
i-07a25c4ae7e6abecb 325979260958    r-05a51aefe5b72358d
....
Run Code Online (Sandbox Code Playgroud)