Yang paling dekat yang saya dapatkan adalah menggunakan perintah berikut.
Perintah ini mengatur daftar semua nama instance.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
Perintah ini mengatur untuk mencantumkan semua alamat ip pribadi, contoh id dan SEMUA tag yang tidak saya butuhkan. Saya hanya perlu namanya.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b | jq '.Reservations[].Instances[] | {PrivateIpAddress, InstanceId, Tags}'
Saya tidak yakin mengapa saya tidak bisa menjalankan perintah seperti ini:
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags[?Key==`Name`].Value[]'
Perintah ini berfungsi tetapi menunjukkan semua nama Tag Key.
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags'
Name
] .Value []" sebagai filter untuk Nama Kunci, output Nilai hanya mungkin setelah aws-cli v1.3.0. Dan saya menggunakan kombinasi --filter dan jq untuk mendapatkan output yang saya inginkan. Perintah terdekat adalah aws ec2 menggambarkan-contoh --filters Name = vpc-id, Nilai = vpc-e2f17e8b | jq '.Revervations []. Instances [] | {PrivateIpAddress, InstanceId, Tags} 'Saya hanya perlu tahu bagaimana mereferensikan Tag Key = Nama menggunakan jq.Jawaban:
Anda harus melarikan diri dari garis miring terbalik untuk memformat jawaban dengan benar.
Jadi ini adalah perintah aktual yang Anda inginkan:
Dan kamu tidak perlu
.Value[]
. Anda bisa menggunakan.Value
, dan itu akan memberikan hasil yang sama.Ini luar biasa, btw. Saya akan menerapkan ini sendiri!
KOREKSI: Di atas tidak akan berfungsi jika nilai
.Value
"Tidak". Ini bekerja lebih baik:sumber
Coba ini
sumber
|
apakah ada semacam filter?Jawaban di atas tidak apa-apa, tetapi favorit saya adalah;
pada kenyataannya, seseorang dapat menempatkannya dalam daftar daftar fungsi BASH;
kemudian cukup panggil dari prompt sebagai 'awsls'
sumber
Sesuatu seperti ini?
sumber
Saya menambahkan filter misalnya keadaan "berjalan". Posting di sini jika itu bermanfaat bagi siapa pun.
Kasus penggunaan saya sedikit berbeda, saya menghasilkan file host Ansible jadi saya hanya ingin nama IP pribadi di semua host yang berjalan.
sumber
Menambahkan ini untuk orang-orang yang akan menemukan posting ini ketika mencari cara untuk mendapatkan informasi contoh Anda. Anda dapat menambahkan VPC dalam pernyataan pilih untuk menerimanya juga.
Di PowerShell, Anda dapat menggunakan:
Dengan AWS CLI Anda dapat menggunakan:
sumber