2017-02-10 64 views
0

我有一個呼籲爲他們的CLI的東西任何非AWS編寫指南本作序...他們的榜樣結果是寥寥可數,並告訴我一無所知所需的語法和進一步的,充實的閱讀將受到歡迎。AWS CLI中添加名稱的描述,實例查詢

我試圖複製我們在GUI中做了幾個任務,腳本,以節省時間。目前我正在試圖通過提供實例的名稱(又名,名稱標籤)來查明實例的狀態。問題是我得到的輸出只是狀態,沒有識別信息。有時用戶會放入通配符並獲取多個實例,並且我想顯示要區分的每個實例的名稱。

我的一個實例的狀態成功查詢看起來像這樣;

aws ec2 describe-instances --query "Reservations[].Instances[].State[]" --filter Name=tag:Name,Values="${userinput}" --output text 

隨着

16 running 
16 running 
16 running 
16 running 
16 running 
16 running 

輸出雖然是正確的,所有的這些符合我的輸入,因爲通配符,例如test*,我需要知道每一個被調用。不實例ID,名稱,即TEST01,test02等

我本來期望它是

aws ec2 describe-instances --query "Reservations[].Instances[].State[].Tags[?Key=='Name'].Value" --filter Name=tag:Name,Values="${state}" --output text 

而是輸出錯誤或

aws ec2 describe-instances --query "Reservations[].Instances[].State[].[Tags[?Key=='Name'].Value]" --filter Name=tag:Name,Values="${state}" --output text 

但是,讓我None

如何我的名字列添加到輸出?

回答

1

的文本輸出格式是一種醜陋的,因爲它打印每個實例多行,但這裏有一個工作版本:

aws ec2 describe-instances --query "Reservations[].Instances[].[State.Name, Tags[?Key=='Name'].Value[]]" --filter Name=tag:Name,Values="${userinput}" --output text 

我無法弄清楚如何獲得使用只有一行的每個實例AWS CLI工具,但這裏的版本每個實例通過管道打印一行到sed

aws ec2 describe-instances --query "Reservations[].Instances[].[State.Name, Tags[?Key=='Name'].Value[]]" --filter Name=tag:Name,Values="${userinput}" --output text | sed 'N;s/\n/ /' 
+0

美麗,謝謝!有沒有辦法(第二個例子)使它與標籤間隔而不是單個空間,所以至少它會排隊輕鬆瀏覽? – Alex