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