2017-02-10 8 views
0

これは、AWS以外のガイドでCLIを使用するためのガイドで呼びかけます。その例はほとんどなく、文法が必要であり、更に読めば読んでも大丈夫です。AWS CLI describe-instancesクエリの結果に名前を追加する

私はスクリプトでGUIで行ういくつかのタスクを複製して、時間を節約しようとしています。現在、私はインスタンスの名前(別名、Nameタグ)を入力して、インスタンスの状態を調べようとしています。問題は、私が得ている出力は、識別情報のない状態だけであるということです。ユーザーがワイルドカードを使用して複数のインスタンスを戻す場合があります。それぞれの名前を区別して表示したい場合があります。

インスタンスの状態の問合せが成功したようです。

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

の出力と

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

、それが原因で、ワイルドカードのこれらマッチした私の入力の全て、例えば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

出力に名前列を追加するにはどうすればよいですか?

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

私は1行だけで使用して各インスタンスを取得する方法を見つけ出すことができませんでした:それは作業バージョンをインスタンスごとに複数の行を出力しますが、ここだから

答えて

1

テキスト出力形式は、一種の醜いですここでAWS CLIツール、しかしsedに配管インスタンスごとに1つの行を印刷したバージョンです:

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

美しい、ありがとうございました! 2つ目の例では、1つのスペースではなくタブでスペースを区切る方法があるので、少なくとも簡単にスキミングできるように整列させますか? – Alex

関連する問題