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

Terraform查询hashicorp/aws可用Provider包失败的原因咨询

报错信息

正在查找匹配">= 2.49.0, >= 3.0.0, ~> 3.37, >= 3.40.0, >= 3.63.0, >= 4.0.0, >= 4.7.0"的hashicorp/aws版本...

错误:Failed to query available provider packages(查询可用提供商包失败)
无法获取hashicorp/aws提供商的可用版本列表:没有可用发布版本匹配给定约束 >= 2.49.0, >= 3.0.0, ~> 3.37, >= 3.40.0, >= 3.63.0, >= 4.0.0, >= 4.7.0

相关配置(main.tf)

terraform {
  required_version = ">= 0.14"

  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "~> 3.37"
    }
  }
}

问题说明

当前配置中仅声明aws provider版本约束为~> 3.37,执行时却触发多重版本约束不匹配报错,问题原因如下:


产生原因

Terraform 对同一Provider的版本校验逻辑,是取整个项目所有模块(包括根模块、引用的第三方公共模块、本地子模块)中声明的同Provider版本约束的交集,不会仅读取根目录下的配置。
根模块中声明的~> 3.37约束实际生效范围是>=3.37.0, <4.0.0,报错里出现的其他版本约束,全部来自项目依赖的其他模块:

  • 其中>= 2.49.0、>= 3.0.0、>= 3.40.0、>= 3.63.0这几个约束和~> 3.37存在重叠的版本区间,不会直接导致冲突
  • 依赖中存在模块要求aws provider版本>=4.0.0甚至>=4.7.0,这个要求和~> 3.37的<4.0.0上限完全没有重叠,所有约束取交集后不存在符合要求的可用版本,就会触发当前报错。

可以直接执行terraform providers命令,输出结果会明确列出每个模块对aws provider的版本要求,定位到声明4.x版本约束的依赖后,要么将根模块的aws provider升级到4.x版本做适配,要么将对应依赖降级到兼容3.x aws provider的版本即可解决问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:48:52