【问题标题】:Why do I have to enter a region name to get the region list in my AWS account为什么我必须输入区域名称才能在我的 AWS 账户中获取区域列表
【发布时间】:2020-09-07 14:40:46
【问题描述】:

使用此代码 sn-p,我可以在我的 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());
        }
    }

【问题讨论】:

    标签: amazon-web-services aws-java-sdk aws-regions


    【解决方案1】:

    来自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 调用(例如对 Stop 或 Start 实例的请求)没有任何不同。请求仍必须发送到 API 端点。所有区域都将以相同的区域列表进行响应。

    所以,简单的答案是:区域标识符有助于确定将请求发送到哪里。

    【讨论】:

      猜你喜欢
      • 2015-03-16
      • 1970-01-01
      • 1970-01-01
      • 2020-08-02
      • 1970-01-01
      • 2017-09-13
      • 2022-07-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多