【问题标题】: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);
                })
            })
        }
    }
);

【讨论】:

    【解决方案2】:

    使用 describeAddresses 节点 API。它将列出您的 ElasticIP 以及每个分配给哪个 InstanceID。你可以从这里拨打startInstances()

    https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/EC2.html#describeAddresses-property

    对于非弹性IP,您也许可以添加一个启动脚本,使实例将其环境详细信息发送到您可以存储和引用的地方?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-21
      • 2021-12-22
      • 2020-02-19
      • 2015-06-07
      • 2015-05-10
      相关资源
      最近更新 更多