我正在尝试获取当前未分配给实例的所有弹性IP。
使用此功能轻松获取所有弹性IP:aws ec2 describe-addresses
从这里开始,过滤掉没有"AssociationId"
的结果会很容易。但是,我不确定如何使用--query
。
我知道--query
选项使用JMESPath来过滤结果,但我不知道如何告诉它返回所有没有AssociationId
的结果。有什么帮助吗?
感谢。
答案 0 :(得分:13)
您可以检查地址集合是否为空值,但是使用cout
代替AssociationId
更好的通用解决方案可能更好:
InstanceId - > (字符串)
与地址关联的实例的ID(如果有)。
AssociationId - > (字符串)
表示地址与VPC中实例的关联的ID。
不在VPC中的弹性IP没有InstanceId
属性,但VPC和EC2 Classic中的弹性IP将输出AssociationId
。
如果你只关心VPC中的IP,你也可以用同样的方式使用InstanceId
。
<强>示例:强>
AssociationId
进一步阅读:
答案 1 :(得分:0)
ElasticIPs也附加到NAT网关。在这种情况下,InstanceID值将为null,但AssociationID是在任何方案中将存在的字段。因此最好使用associationID来确保EIP正在使用中。