AWS CLI Command Line: Cara menggunakan "--query" untuk menampilkan beberapa baris sumber

12

Saya menggunakan aws-cli versi 1.7.8 untuk mendapatkan --queryoutput untuk membuat satu record yang diturunkan dari beberapa baris. Dalam hal ini saya mencoba mendapatkan informasi spesifik dari describe-instances.

Dalam describe-instancesperintah, kita mendapatkan garis / bagian yang merujuk kepada RESERVATIONS, INSTANCES, dan TAGS.

Saya dapat menjalankan perintah AWS CLI baru untuk mendapatkan informasi dari ketiga baris secara individual:

Baris PEMESANAN:

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

Baris INSTANCE:

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

Klimaks:

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

Saya dapat menjalankan 3 perintah ini, dan menggabungkan hasilnya untuk membentuk 1 catatan.

Adakah yang tahu kalau ada cara saya bisa menjalankan ini sebagai SATU (1) perintah, bukannya 3 perintah yang berbeda?

Saya sudah mencoba PIPE dan bentuk sintaks lainnya, tetapi saya belum dapat menemukan solusi yang baik.

Bisakah saya mendapatkan output setara dari 3 perintah ini dari satu perintah?

Chris Charles
sumber
Jalankan perintah Windows dari prompt PowerShell di Windows. Maka akan mengembalikan hasilnya.
Patrick Parks

Jawaban:

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

Perintah ini akan mencetak Instance Id, AMI ID, Key dan Value Tag. Anda dapat melihat lebih banyak contoh di sini: Mengontrol Output Perintah dari Antarmuka Baris Perintah AWS

Peycho Dimitrov
sumber
Menambahkan deskripsi singkat tentang apa yang dilakukan perintah mungkin bisa membantu.
dawud
Apakah ini hanya akan bekerja di CLI berbasis non-windows? Saya mencobanya di Windows CMD - tidak - di CentOS - berhasil.
Naveen Vijay
Di mana ada beberapa dokumentasi pada sintaks kueri ???
cosbor11
Iya. Inilah Anda: docs.aws.amazon.com/cli/latest/userguide/…
Peycho Dimitrov
Dokumen AWS hanya memiliki beberapa contoh. Apakah tidak ada spesifikasi lengkap tentang sintaks?
cosbor11
1

Dengan Windows (cmd.exe, cmder.exe, dll.), Seseorang harus menggunakan tanda kutip ganda (") alih-alih tanda kutip tunggal (') di sekitar string kueri. Jika tidak, konsol hanya mencetak jalur dalam kueri dan bahkan tidak menghasilkan kesalahan.

Jason
sumber