在 Node 中查找与已知 public IP 地址相关联的 EC2 资源 ID
Lookup EC2 resource ID to which a known public IP address is associated, in Node
给定一个已知的 public IP 地址(例如弹性 IP),我如何在 Node 中查找与其关联的 EC2 实例的资源 ID?
我的最终目的是 start/stop EC2 实例与同一 AWS 帐户中另一个 EC2 实例中节点 运行 的给定 public IP 地址相关联。我假设我首先必须找到我想要 start/stop 的实例的资源 ID,然后我可以使用资源 ID 调用 ec2.startInstances()
,但在运行时我只知道 public实例的 IP 地址为 start/stop.
使用 describeAddresses
节点 API。它将列出您的 ElasticIP 以及每个分配给的 InstanceID。您可以从这里调用 startInstances()
。
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeAddresses-property
对于非弹性 IP,您或许可以添加一个启动脚本,使实例将其环境详细信息发送到您可以存储和引用的某个地方?
您可以使用 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);
})
})
}
}
);
给定一个已知的 public IP 地址(例如弹性 IP),我如何在 Node 中查找与其关联的 EC2 实例的资源 ID?
我的最终目的是 start/stop EC2 实例与同一 AWS 帐户中另一个 EC2 实例中节点 运行 的给定 public IP 地址相关联。我假设我首先必须找到我想要 start/stop 的实例的资源 ID,然后我可以使用资源 ID 调用 ec2.startInstances()
,但在运行时我只知道 public实例的 IP 地址为 start/stop.
使用 describeAddresses
节点 API。它将列出您的 ElasticIP 以及每个分配给的 InstanceID。您可以从这里调用 startInstances()
。
https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeAddresses-property
对于非弹性 IP,您或许可以添加一个启动脚本,使实例将其环境详细信息发送到您可以存储和引用的某个地方?
您可以使用 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);
})
})
}
}
);