2015-10-04 93 views
0

的空DNS我写下面的代码来获得新创建的实例的公共DNS但是我得到空获取新创建的实例

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); 
+0

是在VPC创建的实例,而无需公网IP? – datasage

+0

是的,但是在创建实例u =之后,已经为其分配了一个公共dns – aquaabhi

+0

这是否意味着您在创建实例后为其分配弹性IP? – datasage

回答

1

所有非运行的情况下,DNS名称为空。您可以查看文档Instance

这个名称不可用,直到实例进入running 状态

如果你有一个VPC

当你启动一个实例上运行到VPC中,只有在为VPC启用DNS主机名的情况下,Amazon才会为公用和专用DNS主机名提供实例。默认情况下,仅对在VPC控制台中使用VPC向导创建的默认VPC和VPC启用DNS主机名。

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

  • enableDnsHostnames
  • enableDnsSupport