2015-11-20 19 views
5

Şu anda örneklere atanmamış tüm Elastic IP'leri almaya çalışıyorum.EC2 örneğine atanmamış tüm elastik IP'leri nasıl seçebilirim?

Bu kullanarak Elastik IP'lerin tamamı almak kolaydır: aws ec2 describe-addresses

Buradan bir "AssociationId" sahip olmayan herhangi bir sonuç filtrelemek için kolay olurdu. Ancak, --query'u kullanarak bunu nasıl yapacağınızdan emin değilim.

--query seçeneğinin sonuçları filtrelemek için JMESPath kullandığını biliyorum, ancak bana AssociationId olmayan tüm sonuçları döndürmesi için nasıl söyleyeceğimi bilmiyorum. Herhangi bir yardım?

Teşekkürler.

cevap

9

Sen null değerleri Adresleri koleksiyonunu kontrol edebilirsiniz, ancak yerine AssociationId daha iyi bir genel çözüm kullanmak daha iyi olabilir InstanceId:

InstanceID -> (string)

örneğinin kimliği Adresin (varsa) ile ilişkili olduğu.

AssociationId -> (string)

bir VPC bir örneği ile adresinin ilişkiyi temsil eden İD. Bir VPC olmayan

Elastik IP'leri AssociationId özelliği vardır, ancak her iki VPC elastik IP'leri ve EC2 Klasik çıkış InstanceId olacak yoktur.

Alternatif olarak, bir VPC'de IP'leri önemsiyorsanız, AssociationId'u da aynı şekilde kullanabilirsiniz.

Örnekler:

aws ec2 describe-addresses --query 'Addresses[?InstanceId==null]' 

aws ec2 describe-addresses --query 'Addresses[?AssociationId==null]' 

Ek Okuma: Bazı durumlarda, birleşime girmemiş

+1

Not d EIP'ler InstanceId == null ve bazen InstanceId == "" değerini verir. Ayrım VPC EIPs (null gösterir) vs EC2-Klasik EIPs (show "") olduğuna inanıyorum. – jarmod

+0

Yorum için teşekkürler. Ek olarak, sonuç kümesinde (''InstanceId': null') EC2-Klasik EIP'leri null olarak açıkça görüyorum ve VPC EIPS ayarlanmadıysa hiç 'InstanceId' içermiyor. Bu durumda en azından, yalnızca null'u denetlemek her iki durumda da konsolumdan döner. –

+0

Takdir - Bu gitmek için iyi bir yol gibi görünüyor. Mevcut olmayan parametreler için boş kontrol edebileceğimin farkında değildim. Teşekkürler! – joshft91

İlgili konular