2017-02-10 50 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