terraform
module_error
ai_generated
true
错误:冲突的提供程序版本约束:多个模块要求提供程序 X 的不同版本
Error: Conflicting provider version constraints: multiple modules require different versions of provider X
ID: terraform/conflicting-provider-version-constraints
85%修复率
88%置信度
1证据数
2023-08-10首次发现
版本兼容性
| 版本 | 状态 | 引入 | 弃用 | 备注 |
|---|---|---|---|---|
| Terraform >=1.3 | active | — | — | — |
| AzureRM Provider 3.x | active | — | — | — |
| AWS Provider 5.x | active | — | — | — |
根因分析
配置中的两个或多个模块为同一提供程序指定了不兼容的版本约束,导致 Terraform 依赖解析失败。
English
Two or more modules in the configuration specify incompatible version constraints for the same provider, causing Terraform to fail dependency resolution.
官方文档
https://developer.hashicorp.com/terraform/language/providers/requirements#version-constraints解决方案
-
在所有模块中对齐版本约束。例如,在根模块设置 `required_providers { aws = "~> 5.0" }`,并确保所有子模块使用 `aws = ">= 5.0, < 6.0"`。 -
使用 `terraform providers` 检查版本要求,然后将约束更新为公共范围,例如在所有模块中使用 `version = "~> 5.0"`。
无效尝试
常见但无效的做法:
-
55% 失败
Terraform may default to the latest provider version, which could be incompatible with existing state or resources.
-
75% 失败
The lock file is managed by Terraform and manual edits are not preserved; also risks provider corruption.