AWS 转移域名到另一个AWS账户

该文章介绍了如何使用JavaAWSSDK的Route53DomainsClient来实现在AWS账户间的域名转移。首先,文章列出了必要的Maven坐标,然后展示了创建和配置AWS客户端的步骤。接着,详细说明了构建并执行转移和接收域名请求的过程,包括获取和使用密码。最后,文章提及了创建托管区域和更新域名名称服务器的操作。
摘要由CSDN通过智能技术生成

使用Java 实现AWS 转移域名到另一个AWS账户

前言

记录通过aws sdk java 实现转移域名.

环境准备

引入maven坐标

<dependency>
	<groupId>software.amazon.awssdk</groupId>
 	<artifactId>route53domains</artifactId>
 	<version>2.20.110</version>
 </dependency>
 <dependency>
 	<groupId>software.amazon.awssdk</groupId>
 	<artifactId>route53</artifactId>
 	<version>2.20.111</version>
 </dependency>

工具类

public class Route53Service {

    private Route53DomainsClient transferRoute53DomainsClient;

    private Route53DomainsClient acceptRoute53DomainsClient;
    private Route53Client route53Client;


    public Route53Service(String fromAccessId, String secretAccessKey, String toAccessId, String toSecretAccessKey) {
        AwsCredentialsProvider transferCredentials = () -> AwsBasicCredentials.create(fromAccessId, secretAccessKey);
        AwsCredentialsProvider acceptCredentials = () -> AwsBasicCredentials.create(toAccessId, toSecretAccessKey);

        transferRoute53DomainsClient = Route53DomainsClient.builder()
                .region(Region.US_EAST_1)
                .credentialsProvider(transferCredentials)
                .build();
        acceptRoute53DomainsClient = Route53DomainsClient.builder()
                .region(Region.US_EAST_1)
                .credentialsProvider(acceptCredentials)
                .build();
        //创建route53客户端对象
        route53Client = Route53Client.builder()
                .region(Region.US_EAST_1)
                .credentialsProvider(acceptCredentials)
                .build();
    }

    public void transferDomain(String toAccountID, String domainName) {
        //创建转移域名请求对象
        TransferDomainToAnotherAwsAccountRequest transfer = TransferDomainToAnotherAwsAccountRequest.builder()
                .accountId(toAccountID) //目的账户id
                .domainName(domainName)//转移域名
                .build();
        //执行转移域名
        TransferDomainToAnotherAwsAccountResponse transferDomainToAnotherAwsAccountResponse = transferRoute53DomainsClient.transferDomainToAnotherAwsAccount(transfer);
        //输出接口响应
        System.out.println(transferDomainToAnotherAwsAccountResponse.toString());
        //获取密码
        String password = transferDomainToAnotherAwsAccountResponse.password();


        //创建接收域名请求对象
        AcceptDomainTransferFromAnotherAwsAccountRequest accept = AcceptDomainTransferFromAnotherAwsAccountRequest.builder()
                .domainName(domainName)//接收域名
                .password(password)//从上个接口执行结果获取的密码
                .build();
        //执行接收域名
        AcceptDomainTransferFromAnotherAwsAccountResponse acceptDomainTransferFromAnotherAwsAccountResponse = acceptRoute53DomainsClient.acceptDomainTransferFromAnotherAwsAccount(accept);
        //输出接口响应
        System.out.println(acceptDomainTransferFromAnotherAwsAccountResponse.toString());

    }

    public void transferHostedZone(String hostedZoneName) {

        //创建新托管区域
        CreateHostedZoneRequest request = CreateHostedZoneRequest.builder()
                .name(hostedZoneName)//名称
                .callerReference(System.currentTimeMillis()+"")
//                .delegationSetId()
                .build();
        CreateHostedZoneResponse hostedZone = route53Client.createHostedZone(request);
        //输出接口响应
        System.out.println(hostedZone.toString());
        //获取新托管区域名称服务器
        List<String> nameServers = hostedZone.delegationSet()
                .nameServers();
        nameServers.forEach(System.out::println);
        List<Nameserver> names = new ArrayList<>();
        nameServers.forEach(e -> names.add(Nameserver
                .builder()
                .name(e)
                .build()));
        //更改域名名称服务器
        UpdateDomainNameserversResponse updateDomainNameserversResponse = acceptRoute53DomainsClient.updateDomainNameservers(UpdateDomainNameserversRequest.builder()
                .domainName(hostedZoneName)
                .nameservers(names)//默认有四个名称服务器
                .build());
        //输出接口响应
        System.out.println(updateDomainNameserversResponse.toString());

    }


}

直接使用即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值