如何解决为什么我必须输入区域名称才能在我的AWS账户中获取区域列表
使用此代码段,我可以在我的AWS账户中获取一个区域列表,但是为什么我必须输入一个区域名称才能获取区域列表(在本例中为“ us-east-1”)。
AWSCredentials credentials = new BasicAWSCredentials("accessKey","secretKey");
AWSCredentialsProvider credentialsProvider=new AWsstaticCredentialsProvider(credentials);
AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard()
.withCredentials(credentialsProvider)
.withRegion("us-east-1")
.build();
DescribeRegionsResult regions_response = ec2.describeRegions();
for(Region region : regions_response.getRegions()) {
System.out.println(region.getRegionName());
}
}
解决方法
来自AWS service endpoints - AWS General Reference:
大多数Amazon Web Services提供一个区域终端节点,您可以使用该区域终端发出请求。区域端点的一般语法如下。
protocol://service-code.region-code.amazonaws.com
例如,https://dynamodb.us-west-2.amazonaws.com是美国西部(俄勒冈)地区中Amazon DynamoDB服务的端点。
您的代码正在调用Amazon EC2服务。为此, API调用必须发送到区域中的EC2端点。 EC2服务将响应对该端点发出的请求。
您的特定API调用要求一个区域列表这一事实与其他API调用(例如,停止或启动实例的请求)没有任何不同。该请求仍必须发送到API端点。所有区域将以相同的区域列表进行响应。
因此,简单的答案是:区域标识符有助于确定将请求发送到哪里。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。