如何使用AWS-SDK Javascript获得EC2公共IP

rlu*_*isr 5 amazon-ec2 node.js aws-sdk

我想使用aws-sdk for Javascript获得EC2实例的公共IP。执行以下代码后,返回给出{ Reservations: [] }

'use strict';

const AWS = require('aws-sdk');

AWS.config.loadFromPath('./aws.json');
AWS.config.update({ region: 'ap-northeast-1' });

const ec2 = new AWS.EC2({ apiVersion: '2016-11-15' });

const params = {
  Filters: [
    {
      Name: 'ip-address',
      Values: [
        'ip-address'
      ]
    }
  ],
  InstanceIds: [
    "i-0acf483a5cbdfdbeb"
  ]
};

ec2.describeInstances(params, function (err, data) {
  if (err) {
    console.log(err);
  }

  console.log(data);
});
Run Code Online (Sandbox Code Playgroud)

使用的凭据已在IAM上经过验证,并被允许访问EC2实例。为什么不能获取其公共IP?

节点:7.1.0

作业系统:CentOS 7.3 / Windows 10

Sta*_*lav 8

我认为您的 params 对象中不需要“过滤器”部分。用这个:

const params = {
  InstanceIds: [
    "i-0acf483a5cbdfdbeb"
  ]
};
Run Code Online (Sandbox Code Playgroud)

要获取公共 ip,请使用 data.Reservations[0].Instances[0].PublicIpAddress