是否可以根据其 IP 地址获取 aws ec2 实例 ID

Ram*_*mar 13 puppet amazon-ec2 amazon-web-services puppetmaster aws-cli

我有 IP 地址列表,我想查找与该 IP 地址关联的实例是否仍在运行或终止。我每天都在启动和终止大量实例,只想从 puppetmaster 中删除它们的证书。

如果有任何替代方法,我可以实现我的目标,我可以做到。

小智 18

aws ec2 describe-instances --filter Name=ip-address,Values=IP_1,..IP_N

应该做你需要的。

使用过滤器名称 private-ip-address选择在您的 VPC 中使用私有地址。

管道通过类似的东西

jq -r '.Reservations[].Instances[] | .InstanceId, .PublicIpAddress'

如果你想要相应的InstanceID

  • 您不需要使用`jq`,您可以通过`--query` 选项来提取部分输出:`aws ec2 describe-instances --filter Name=ip-address,Values=IP_1,..IP_N --query 'Reservations[].Instances[].[InstanceId,PublicIpAddress]`请参阅[从 AWS 命令​​行界面控制命令输出](https://docs.aws.amazon.com/cli/latest/userguide/controlling -output.html) 了解更多详情。请注意,`--query` 使用 [JMESPath](http://jmespath.org/),这与 `jq` 略有不同。 (3认同)

小智 8

如果你想在 bash 脚本中使用它,你可以使用 --query 和 --output 格式。

aws ec2 describe-instances --filter Name=private-ip-address,Values=x.x.x.x --query 'Reservations[].Instances[].InstanceId' --output text
Run Code Online (Sandbox Code Playgroud)

这将为您提供没有 json 格式的文本响应

i-03c1ad0d6abe32323
Run Code Online (Sandbox Code Playgroud)