2017-08-31 24 views
0

我在AWS中具有相同ReservationId(他們同時啓動,他們有AmiLaunchIndex 0到X)的實例。我的目標是爲每個實例生成一行文本輸出,如此。爲了清晰,我添加了列標題。返回文本列表的值每條實例id與awscli一行--query

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 ... 

在jmespath小膠質通道,地圖功能建議的方式來做到這一點,但我無法弄清楚如何使用該功能。有什麼建議麼?

回答

2

不幸的是,這樣做的權利,我認爲我們需要https://github.com/jmespath/jmespath.site/pull/6

在這個特定的情況下,可以通過使用網絡接口的所有者,這幾乎可以肯定是在實踐中相同破解該結果:

Reservations[].Instances[].[NetworkInterfaces[0].OwnerId, InstanceId, KeyName]

(如果你想使用的,而不是陣列的對象列標題)

1

你需要運行下面的命令

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

您可以添加你想要的其他參數

這將提供無頭,就像這樣所需的輸出(在一行中的所有元素)

i-08eec92943c9cc576 325979260958 r-0b13a131efa6b3af8 
i-07a25c4ae7e6abecb 325979260958 r-05a51aefe5b72358d 
.... 
+0

謝謝,最後的第零個索引在我的終端只顯示第一行。 – LHWizard

+0

此外,似乎有一段時間缺少'Instances []。InstanceId',因爲會引發錯誤。 – LHWizard

+0

我修復了一段時間,它應該與任何數量的實例一起工作 –

1
ec2 describe-instances --query 
'Reservations[*]. 
{ 
    id:ReservationId, 
    requester:RequesterId, 
    instance:Instances[].InstanceId |[0], 
    lifecycle:Instances[].InstanceLifecycle | [0] 
} 
' 
--output text 

....爲我工作。