我试图在地形中使用两个提供程序版本,尽管我得到了以下错误
Error: Failed to query available provider packages
Could not retrieve the list of available versions for provider hashicorp/aws:
no available releases match the given constraints >= 3.71.0, 3.71.0, 4.6.0
这是我想做的。我有一个地形文件,它使用多个模块。仅在一个模块中,我就需要使用aws提供程序版本4.6.0。在其他模块上,我需要坚持使用当前应用的提供商版本,即3.71.0
Terraform版本:0.13.6
Im在地形文件中定义了一个约束,所以";hashicorp/aws";可以是3.71.0以上的任何值。以下是定义:
"aws": {
"version": ">= 3.71.0",
"assume_role": {
"role_arn": "....",
"session_name": "..."
},
terraform文件调用了10多个模块,模块0到9的提供者配置是
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "= 3.71.0"
}
}
}
第10模块提供商配置为
terraform {
required_providers {
aws = {
source = "hashicorp/aws"
version = "= 4.6.0"
}
}
}
我缺什么了吗?
注意:我已经参考了这篇文章-Terraform的多个提供商版本,虽然不确定,如果它在技术上不可能,而且我做错了
我们为每个区域使用一个单独的提供者块,这就是我们处理它的方式:
provider "aws" {
region = "us-west-2"
}
provider "aws" {
alias = "east-2-provider"
region = "us-east-2"
version = "~> 4.0"
}
provider "aws" {
alias = "east-1-provider"
region = "us-east-1"
version = "~> 3.74"
}
当我们使用模块时,我们使用它如下:
module "example-1" {
source = "./example"
providers = {
aws = east-1-provider
}
}
module "example-2" {
source = "./example"
providers = {
aws = east-2-provider
}
}