AWS CLIコマンドライン:「--query」を使用して複数のソース行を出力する方法


12

aws-cliバージョン1.7.8を使用--queryして、複数の行から派生した1つのレコードを作成するための出力を取得しています。この場合、私はから特定の情報を取得しようとしていますdescribe-instances

ではdescribe-instancesコマンド、我々はを参照してくださいライン/セクションを取得しRESERVATIONSINSTANCESTAGS

新しいAWS CLIコマンドを実行するだけで、3行すべてから個別に情報を取得できます。

予約ライン:

aws ec2 describe-instances --instance-ids i-xxxxxxxx --query 'Reservations[*].ReservationId'

INSTANCE行:

aws ec2 describe-instances --instance-ids i-xxxxxxxx --query 'Reservations[*].[Instances[*].[InstanceId,ImageId]]'

タグライン:

aws ec2 describe-instances --instance-ids i-xxxxxxxx --query 'Reservations[].Instances[].[Tags[?Key==名前]]'

これら3つのコマンドを実行し、結果を連結して1つのレコードを作成できます。

これを3つの異なるコマンドではなく、1つのコマンドとして実行できる方法があるかどうか誰かが知っていますか?

PIPEやその他の形式の構文を試しましたが、現時点では良い解決策を見つけることができません。

単一のコマンドからこれら3つのコマンドの同等の出力を取得できますか?


WindowsのPowerShellプロンプトからWindowsコマンドを実行します。その後、結果を返します。
Patrick Parks

回答:


22
aws ec2 describe-instances --instance-id i-77777777 \
  --query 'Reservations[*].Instances[*].[InstanceId,ImageId,Tags[*]]' \
  --output text

このコマンドは、インスタンスID、AMI ID、キーおよび値タグを出力します。その他の例については、こちらをご覧ください 。AWSコマンドラインインターフェイスからのコマンド出力の制御


コマンドの実行内容の簡単な説明を追加すると役立つ場合があります。
dawud 2015年

これは非WindowsベースのCLIでのみ機能しますか?私はWindows CMDでそれを試しました-しませんでした-CentOSでは-うまくいきました。
Naveen Vijay 2015年

クエリ構文に関するドキュメントはどこにありますか?
cosbor11

はい。ここでは、次のとおりです。docs.aws.amazon.com/cli/latest/userguide/...
Peychoディミトロフ

AWSドキュメントにはいくつかの例しかありません。構文の完全な仕様はありませんか?
cosbor11

1

Windows(cmd.exe、cmder.exeなど)では、クエリ文字列を一重引用符( ')ではなく二重引用符( ")で囲む必要があります。それ以外の場合、コンソールはクエリ内のパスを出力するだけで、エラーを生成します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.