En yakın ben aşağıdaki komutları kullanmaktır.
Bu komut tüm örnek adlarını listeler.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b --query 'Reservations[].Instances[].Tags[?Key==`Name`].Value[]'
Bu komut, ihtiyaç duymadığım tüm özel ip adreslerini, örnek kimliğini ve TÜM etiketleri listeleyebiliyor. Sadece isme ihtiyacım var.
aws ec2 describe-instances --filters Name=vpc-id,Values=vpc-e2f17e8b | jq '.Reservations[].Instances[] | {PrivateIpAddress, InstanceId, Tags}'
Neden bu şekilde komut yürütemiyorum emin değilim:
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags[?Key==`Name`].Value[]'
Bu komut çalışır, ancak tüm Tag Key adlarını gösterir.
aws ec2 describe-instances | jq '.["Reservations"]|.[]|.Instances|.[]|.PrivateIpAddress + " " + .InstanceId + " " + .Tags'
Name
Anahtar Adı Değer çıktısı için bir filtre olarak "Tags [? Key == ] .Value []" kullanılması yalnızca aws-cli v1.3.0'dan sonra mümkündür. Ve istediğim çıktıyı almak için --filter ve jq kombinasyonunu kullanıyorum. En yakın komut aws ec2 description-instances --filters Name = vpc-id, Values = vpc-e2f17e8b | jq '.Reservations []. Örnekler [] | {PrivateIpAddress, InstanceId, Tags} 'Sadece jq kullanarak Tag Key = Name'e nasıl başvuracağımı bilmem gerekiyor.