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

调用AWS Account API ListRegions未设区域报错,AWS CLI却正常

问题解决:调用AWS Account ListRegions API时的MissingRegion错误

原因分析

AWS CLI执行aws account list-regions时,会自动将全局服务的默认区域设为us-east-1,所以无需手动指定也能正常请求。但Go SDK不会自动处理这个逻辑,必须显式配置区域才能初始化客户端,这就是你遇到报错的核心原因。

解决方案

Account服务属于AWS全局服务,API端点固定在us-east-1,只需在创建Session或客户端时指定该区域即可解决问题。

修正后的代码示例

accountId := "xxxxxxxxxxxxxxxx"
input := &account.ListRegionsInput{
    AccountId: &accountId,
}

// 创建Session时指定us-east-1区域
mySession, err := session.NewSession(&aws.Config{
    Credentials: creds,
    Region:      aws.String("us-east-1"), // 新增区域配置
})
if err != nil {
    fmt.Printf("Session creation error: %v\n", err)
    return
}

// 注意:原代码中ac.session应为mySession,修正变量名一致性
acClient1 := account.New(mySession)
regions, err := acClient1.ListRegions(input)
if err != nil {
    fmt.Printf("Error: %v\n", err)
}
fmt.Printf("Regions: %v\n", regions)

补充说明

  • 所有AWS全局服务(如Account、IAM、Organizations等)的API端点默认使用us-east-1,调用这类服务的SDK时必须显式指定该区域。
  • 原代码存在变量名错误:account.New(ac.session)中的ac.session应为你定义的mySession,需保证变量引用一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 13:12:35