在地形中使用多个提供程序版本



我试图在地形中使用两个提供程序版本,尽管我得到了以下错误

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
}
}

相关内容

  • 没有找到相关文章

最新更新