【问题标题】:Lookup EC2 resource ID to which a known public IP address is associated, in Node在 Node 中查找与已知公共 IP 地址关联的 EC2 资源 ID
【发布时间】:2020-06-10 13:59:35
【问题描述】:
给定一个已知的公共 IP 地址(例如弹性 IP),我如何在 Node 中查找与其关联的 EC2 实例的资源 ID?
我的最终目的是从运行在同一 AWS 账户的另一个 EC2 实例中的节点启动/停止与给定公共 IP 地址关联的 EC2 实例。我假设我首先必须找到我想要启动/停止的实例的资源 ID,以便我可以使用资源 ID 调用 ec2.startInstances(),但在运行时我只知道要启动的实例的公共 IP 地址/停下来。
【问题讨论】:
标签:
amazon-web-services
amazon-ec2
aws-sdk
aws-sdk-js
aws-sdk-nodejs
【解决方案1】:
您可以使用describeInstances 和"ip-address" 过滤器来查找您要查找的实例。然后,您可以使用实例 ID 来停止实例或执行您可能需要的任何其他操作。
var AWS = require('aws-sdk');
var ec2 = new AWS.EC2();
ec2.describeInstances(
{
Filters: [
{
Name: "ip-address",
Values: [
"5.5.5.5"
]
}
]
},
function (err, data) {
if (err) console.log(err, err.stack); // an error occurred
else { // successful response
data.Reservations.forEach(r => {
r.Instances.forEach(i => {
console.log(i.InstanceId);
})
})
}
}
);