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

使用AWS Route53 Java API创建SIMPLE路由策略遇参数错误

解决AWS Route53 Java API创建SIMPLE路由策略的问题

问题根源

你在代码中添加了setIdentifier属性,这个属性仅用于非SIMPLE类型的路由策略(如加权、延迟、故障转移等),用来区分同一域名、同一记录类型下的多条不同记录集。当你设置了setIdentifier但未匹配提供对应路由策略的参数(比如Region、Weight)时,AWS会判定请求无效;而如果添加Region参数,会自动切换为Latency策略,不符合你需要的无地域限制SIMPLE策略需求。

修正后的代码

创建SIMPLE路由策略的记录集,只需移除setIdentifier即可——因为SIMPLE策略是单条记录,无需区分标识:

Change change = Change.builder()
        .action(ChangeAction.UPSERT)
        .resourceRecordSet(ResourceRecordSet.builder()
                .name(recordFqdn) 
                .type(RRType.CNAME) 
                .ttl(300L) 
                .resourceRecords(resourceRecords) 
                .build())
        .build();

ChangeResourceRecordSetsRequest request = ChangeResourceRecordSetsRequest.builder()
        .hostedZoneId(hostedZone.id())
        .changeBatch(ChangeBatch.builder()
                .changes(change)
                .build())
        .build();
getRoute53Client().changeResourceRecordSets(request);

错误详情

原代码触发的错误信息:

software.amazon.awssdk.services.route53.model.InvalidInputException: Invalid request: Expected exactly one of [Weight, Region, Failover, GeoLocation, MultiValueAnswer, GeoProximityLocation, or AvailabilityZone], but found none in Change with [Action=UPSERT, Name=foo.mydomain.net, Type=CNAME, SetIdentifier=foo.mydomain.net] (Service: Route53, Status Code: 400, Request ID: xxxxxxxxxx)

at software.amazon.awssdk.core.internal.http.CombinedResponseHandler.handleErrorResponse(CombinedResponseHandler.java:125)
at software.amazon.awssdk.core.internal.http.CombinedResponseHandler.handleResponse(CombinedResponseHandler.java:82)

该错误的核心逻辑是:AWS检测到setIdentifier属性后,默认认为你要创建多记录集的路由策略,因此要求你指定对应的策略类型参数,但你未提供,所以请求被拒绝。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 22:47:23