获取新创建的实例的null dns

时间:2015-10-04 19:33:27

标签: amazon-web-services amazon-ec2 aws-java-sdk

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

1 个答案:

答案 0 :(得分:1)

对于所有未运行的实例,dns名称为null。您可以查看Instance

的文档
  

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

如果您使用VPC

运行

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

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

  • enableDnsHostnames
  • enableDnsSupport