首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以使用Java AWS API更新Route53记录?

问是否可以使用Java AWS API更新Route53记录?
EN

Stack Overflow用户
提问于 2012-04-16 14:36:56
回答 3查看 3.6K关注 0票数 4

我在亚马逊Route53上有一个托管域。在这个域名下,我有一个子域的'A‘记录。

我希望能够使用Java API更新'A‘记录的IP地址。但是,当查看com.amazonaws.services.route53.model.Change类的setAction方法时,它只接受CREATE或DELETE值。这似乎与Java API在幕后发送的XML消息中允许的值相匹配。

有没有办法只更新IP地址,或者我必须删除原始记录,然后重新创建它?

谢谢

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-04-16 14:51:30

唯一的方法是使用here中提到的DELETE / CREATE sequence。

创建更改批处理请求

要创建变更批处理请求,请使用ChangeResourceRecordSets操作ChangeBatch元素。对于要更新的每个记录,可以在ChangeBatch元素中使用创建和删除操作。如果只创建记录,则只需使用CREATE actions。

票数 2
EN

Stack Overflow用户

发布于 2015-02-12 03:25:05

使用下面这段代码,它对我很有效:

代码语言:javascript
复制
ResourceRecord record = new ResourceRecord(loadBalancer);
List<ResourceRecord> records = new ArrayList<ResourceRecord>();
records.add(record);
ResourceRecordSet recordsSet = new ResourceRecordSet();
recordsSet.setResourceRecords(records);
recordsSet.setType(RRType.CNAME);
recordsSet.setTTL(900L);
recordsSet.setName(subdomain + ".");
Change change = new Change(ChangeAction.CREATE, recordsSet);
List<Change> changes = new ArrayList<Change>();
changes.add(change);
ChangeBatch batch = new ChangeBatch(changes);
ChangeResourceRecordSetsRequest request = new ChangeResourceRecordSetsRequest();
request.setChangeBatch(batch);
request.setHostedZoneId(hostedZoneId);
ChangeResourceRecordSetsResult result = getRoute53Client().changeResourceRecordSets(request);
System.out.println(result);

只需用适当的数据替换我使用的变量即可。(子域、loadBalancer和hostedZoneId)。方法getRoute53Client()从AWS API返回AmazonRoute53Client类的一个实例。

票数 4
EN

Stack Overflow用户

发布于 2016-11-08 19:37:25

代码语言:javascript
复制
        ResourceRecord rr = new ResourceRecord(IPAdress); // IPAddress will be String variable that has IP value
        List<ResourceRecord> rrList = new ArrayList<ResourceRecord>();
        rrList.add(rr);

        // Create a ResourceRecordSet
        ResourceRecordSet resourceRecordSet = new ResourceRecordSet();
        resourceRecordSet.setName(domainName); //domainName is String value of your domain
        resourceRecordSet.setType(RRType.A); //type of ResourceRecordSet
        resourceRecordSet.setTTL(new Long(300));
        resourceRecordSet.setWeight(new Long(0));
        resourceRecordSet.setResourceRecords(rrList);

        // Create a change
        Change change = new Change(ChangeAction.CREATE, resourceRecordSet);
        List<Change> changesList = new ArrayList<Change>();
        changesList.add(change);

        // Create a change batch
        ChangeBatch changeBatch = new ChangeBatch(changesList);

        // Create ChangeResourceRecordSetRequest.
        ChangeResourceRecordSetsRequest request = new ChangeResourceRecordSetsRequest(hostedZoneID, changeBatch); //hostedZoneId is variable that is the id of HostedZone

        // Send the request and get the response.
        ChangeResourceRecordSetsResult result = amazonRoute53Client.changeResourceRecordSets(request);

        // Print the result
        System.out.println(result.getChangeInfo());
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10169666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档