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

如何在AWS Java SDK 2.21.1中无需硬编码获取指定国家的所有区域?

获取AWS所有区域(无需硬编码)

在AWS SDK for Java v2.21.1中,你可以直接通过Region类的内置方法获取所有支持的区域,完全不需要手动硬编码区域列表。

核心实现方法

调用Region.regions()即可获取SDK支持的所有区域对象集合,再通过Region.id()提取区域名称字符串。需要注意的是,SDK v2的区域ID采用小写短横线格式(如us-east-1),而非旧版的US_前缀风格。

示例代码

import software.amazon.awssdk.regions.Region;
import java.util.List;
import java.util.stream.Collectors;

public class AwsRegionFetcher {
    public static void main(String[] args) {
        // 获取所有AWS区域对象
        List<Region> allRegions = Region.regions();
        
        // 提取所有区域名称字符串
        List<String> allRegionIds = allRegions.stream()
                .map(Region::id)
                .collect(Collectors.toList());
        
        // 筛选美国区域
        List<String> usRegionIds = allRegions.stream()
                .map(Region::id)
                .filter(id -> id.startsWith("us-"))
                .collect(Collectors.toList());
        
        // 输出示例
        System.out.println("所有AWS区域:");
        allRegionIds.forEach(System.out::println);
        System.out.println("\n美国区域:");
        usRegionIds.forEach(System.out::println);
    }
}

关键说明

  • Region.regions()返回的是当前SDK版本(2.21.1)内置支持的所有区域,AWS新增区域后,只需升级SDK版本就能自动同步新区域,无需修改代码。
  • 若需要动态获取实时最新的区域(比如SDK版本未及时更新),可以调用EC2的DescribeRegions API,但大多数场景下Region.regions()已足够满足需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 04:22:35