【问题标题】:Getting null dns of newly created instance获取新创建实例的空 dns
【发布时间】:2015-10-04 19:33:27
【问题描述】:

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

【问题讨论】:

  • 实例是在没有公网IP的VPC中创建的吗?
  • 是的,但是在创建实例 u= 之后,已经为其分配了一个公共 dns
  • 这是否意味着您在创建实例后为其分配弹性 IP?
  • 我已经使用 RunInstancesRequest() 创建了实例
  • 实例是否有公共 DNS?如果实例是在 VPC 中创建的,并且创建时没有分配公共 IP,则 null 的值是正确的。在经典中创建的实例始终获得公共 IP,但在 VPC 中创建的实例可能不会。

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


【解决方案1】:

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

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

如果您使用 VPC 运行

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

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

  • enableDnsHostnames
  • 启用DnsSupport

【讨论】:

    猜你喜欢
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 2019-03-13
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    相关资源
    最近更新 更多