获取新创建实例的空 dns

Getting null dns of newly created instance

我正在编写下面的代码来获取 public 新创建实例的 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);

对于所有非 运行ning 实例,dns 名称为空。您可以查看 Instance class

的文档

This name is not available until the instance enters the running state

如果您 运行 使用 VPC

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

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

  • 启用 Dns 主机名
  • 启用 DnsSupport