2 回答
TA贡献1836条经验 获得超5个赞
AWS SDK 开发团队决定要求 Route53 请求明确指示Region.AWS_GLOBAL
或 请求不起作用,
要访问 Route53,您当前需要指定 AWS_GLOBAL 区域。这样做是为了防止客户使用全球服务,而没有意识到对于此服务,您的呼叫可能不会停留在该地区,而可能会跨越全球。
不幸的是,亚马逊没有在 SDK 中记录这一点(我可以找到),也没有提供有用的错误消息,而是假设开发人员在 SDK 尝试访问不存在的端点时会以某种方式猜测到问题,即使SDK 是根据 API 和在线文档使用的。
简而言之,Route53 客户端必须像这样创建:
route53Client = Route53Client.builder().region(Region.AWS_GLOBAL).build();
TA贡献1853条经验 获得超18个赞
以下是列出托管区域的 AWS Route 53 V2 代码示例:
package com.example.route;
//snippet-start:[route.java2.list_zones.import]
import software.amazon.awssdk.regions.Region;
import software.amazon.awssdk.services.route53.Route53Client;
import software.amazon.awssdk.services.route53.model.HostedZone;
import software.amazon.awssdk.services.route53.model.Route53Exception;
import software.amazon.awssdk.services.route53.model.ListHostedZonesResponse;
import java.util.List;
//snippet-end:[route.java2.list_zones.import]
public class ListHostedZones {
public static void main(String[] args) {
Region region = Region.AWS_GLOBAL;
Route53Client route53Client = Route53Client.builder()
.region(region)
.build();
listZones(route53Client);
}
//snippet-start:[route.java2.list_zones.main]
public static void listZones(Route53Client route53Client) {
try {
ListHostedZonesResponse zonesResponse = route53Client.listHostedZones();
List<HostedZone> checklist = zonesResponse.hostedZones();
for (HostedZone check: checklist) {
System.out.println("The name is : "+check.name());
}
} catch (Route53Exception e) {
System.err.println(e.getMessage());
System.exit(1);
}
}
//snippet-end:[route.java2.list_zones.main]
}
添加回答
举报