0

我正在编写下面的代码以获取新创建实例的公共 dns 但是我得到了 null

DescribeInstancesResult describeInstancesRequest = amazonEC2Client.describeInstances(new DescribeInstancesRequest());
List<Reservation> reservations = describeInstancesRequest.getReservations();

for (Reservation reservation : reservations) {
    for (Instance instance1 : reservation.getInstances()) {

        dns = instance1.getPublicDnsName();
        if(!(dns.equals("")))
        {

            break;
        }


    }
}
System.out.println("value:" + dns);
4

1 回答 1

2

对于所有非运行实例,dns 名称为空。您可以查看Instance课程的文档

running 在实例进入状态之前,此名称不可用

如果您使用 VPC 运行

当您在 VPC 中启动实例时,仅当为 VPC 启用 DNS 主机名时,Amazon 才会为实例提供公有和私有 DNS 主机名。默认情况下,仅对默认 VPC 和您使用 VPC 控制台中的 VPC 向导创建的 VPC 启用 DNS 主机名。

Amazon 支持以下 VPC 属性来控制 DNS 支持。如果您希望您的实例具有可从 Internet 访问的公共 DNS 主机名,请务必将这两个属性都设置为 true。

  • enableDns主机名
  • enableDnsSupport
于 2015-10-05T10:19:25.457 回答