Cari instance EC2 dengan namanya dari alat baris perintah aws

32

Saya memiliki contoh bernama dev-server-03. Sekarang bagaimana saya bisa mencari semua dev-server-*instance dari command line?

Saya menggunakan alat aws cli.

Shiplu Mokaddim
sumber
Ini tergantung pada bagaimana Anda menamai instance tersebut. Apakah Anda mengatur nama host di dalam OS, pada konsol AWS atau keduanya?
Craig Watson
Ya di dalam hostname OS diatur ke Nama yang sama.
Shiplu Mokaddim

Jawaban:

55

Dengan asumsi bahwa Anda menggunakan konvensi untuk meletakkan nama instance dalam tag dengan kunci "Nama" (inilah yang dilakukan Konsol AWS ketika Anda memasukkan nama), maka Anda dapat menggunakan --filtersopsi untuk membuat daftar instance dengan aws-cli:

aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*'

Jika Anda hanya ingin id instance dari instance tersebut, Anda dapat menggunakan:

aws ec2 describe-instances --filters 'Name=tag:Name,Values=dev-server-*' \
  --output text --query 'Reservations[*].Instances[*].InstanceId'

Catatan: --querymungkin membutuhkan aws-cli versi terbaru tetapi layak untuk didapatkan.

Eric Hammond
sumber
1
Omg butuh hampir setengah jam untuk mencari tahu ini ... betapa anehnya ini:Name=tag:Name
lisak
1
Terima kasih Eric - Saya mendapatkan beberapa ID instan pada baris yang sama, menggunakan kueri Anda, tetapi github.com/aws/aws-cli/issues/914#issuecomment-56210312 menyarankan --query 'Reservations[].Instances[].[InstanceId]yang berfungsi untuk saya
jaygooby
3
FWIW, jqalat ini dapat digunakan untuk mendapatkan hasil yang serupa aws --queryseperti ini: - aws ec2 describe-instances | jq '.Reservations[].Instances[].PrivateIpAddress'perhatikan .titik sebelumnya .
MarkHu
dapatkah Anda membuat filter instance-case tidak sensitif?
red888
3

Anda dapat memfilter lebih lanjut dengan nama, contoh id dan ip pribadi dengan di bawah ini,

aws ec2 describe-instances --filters "Name=tag:Name,Values=*myinstance*" --output json --query 'Reservations[*].Instances[*].[PrivateIpAddress,InstanceId,Tags[?Key==`Name`].Value]' --region us-east-1
Siva Prasad Koka
sumber