You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用AWS Java SDK获取Hosted Zone的域名服务器

AWS Java SDK 获取Route53托管区域默认域名服务器的实现方法

直接调用getHostedZone接口查询指定托管区详情即可拿到默认域名服务器,无需调用可重用委托集相关接口,具体逻辑如下:

原理说明

AWS控制台默认创建的托管区域会自动生成专属委托集,该委托集不会出现在ListReusableDelegationSets的返回结果中,仅绑定在对应托管区的详情属性里。你可以在查询托管区详情时,直接从响应关联的DelegationSet对象中提取域名服务器列表。

代码示例

AWS Java SDK 2.x 版本

import software.amazon.awssdk.services.route53.Route53Client;
import software.amazon.awssdk.services.route53.model.GetHostedZoneRequest;
import software.amazon.awssdk.services.route53.model.GetHostedZoneResponse;
import java.util.List;

public class QueryHostedZoneNameservers {
    public static void main(String[] args) {
        // 替换为目标托管区ID,需去掉ID前缀的/hostedzone/字符串
        String targetHostedZoneId = "替换为你的托管区ID";
        
        try (Route53Client route53Client = Route53Client.create()) {
            GetHostedZoneRequest zoneRequest = GetHostedZoneRequest.builder()
                    .id(targetHostedZoneId)
                    .build();
            GetHostedZoneResponse zoneResponse = route53Client.getHostedZone(zoneRequest);
            
            // 提取默认域名服务器列表
            List<String> nameservers = zoneResponse.delegationSet().nameServers();
            // 遍历输出结果
            nameservers.forEach(System.out::println);
        }
    }
}

AWS Java SDK 1.x 版本

import com.amazonaws.services.route53.AmazonRoute53;
import com.amazonaws.services.route53.AmazonRoute53ClientBuilder;
import com.amazonaws.services.route53.model.GetHostedZoneRequest;
import com.amazonaws.services.route53.model.GetHostedZoneResult;
import java.util.List;

public class QueryHostedZoneNameserversV1 {
    public static void main(String[] args) {
        // 替换为目标托管区ID,需去掉ID前缀的/hostedzone/字符串
        String targetHostedZoneId = "替换为你的托管区ID";
        
        AmazonRoute53 route53Client = AmazonRoute53ClientBuilder.defaultClient();
        GetHostedZoneRequest zoneRequest = new GetHostedZoneRequest().withId(targetHostedZoneId);
        GetHostedZoneResult zoneResult = route53Client.getHostedZone(zoneRequest);
        
        // 提取默认域名服务器列表
        List<String> nameservers = zoneResult.getDelegationSet().getNameServers();
        // 遍历输出结果
        nameservers.forEach(System.out::println);
    }
}

注意:如果查询的是私有托管区域,默认不会生成委托集,域名服务器统一使用VPC配置的DNS地址,不需要从Route53接口获取。

内容的提问来源于stack exchange,提问作者solaechea

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 11:54:03