微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

为什么我必须输入区域名称才能在我的AWS账户中获取区域列表

如何解决为什么我必须输入区域名称才能在我的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 举报,一经查实,本站将立刻删除。