首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在terraform中使用多提供程序版本

在terraform中使用多提供程序版本
EN

Stack Overflow用户
提问于 2022-04-14 02:51:47
回答 1查看 1K关注 0票数 0

我试图使用两个提供程序版本和in terraform,虽然我得到了以下错误

代码语言:javascript
复制
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

这就是我想要做的。我有一个terraform文件,它使用多个模块。在一个模块中,我需要使用aws提供者版本4.6.0。在其他模块上,我需要坚持当前应用的提供程序版本,即3.71.0

Terraform版本: 0.13.6

Im在terraform文件中定义一个约束,因此"hashicorp/aws“可以是3.71.0以上的任何内容。定义如下:

代码语言:javascript
复制
  "aws": {
    "version": ">= 3.71.0",
    "assume_role": {
      "role_arn": "....",
      "session_name": "..."
    },

terraform文件调用超过10个模块,模块0到9个提供程序配置为

代码语言:javascript
复制
terraform {
  required_providers {
    aws = {
      source                  = "hashicorp/aws"
      version                 = "= 3.71.0"
    }
  }
}

第十个模块提供程序配置是

代码语言:javascript
复制
terraform {
  required_providers {
    aws = {
      source                  = "hashicorp/aws"
      version                 = "= 4.6.0"
    }
  }
}

我遗漏了什么吗?

注意:我已经提到了这个后Multiple provider versions with Terraform,虽然不确定它在技术上是否不可能,而且我做错了什么。

EN

回答 1

Stack Overflow用户

发布于 2022-04-14 03:19:13

我们为每个区域使用一个单独的提供者块,这是我们处理它的方式:

代码语言:javascript
复制
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"
}

当我们使用一个模块时,我们使用它如下:

代码语言:javascript
复制
module "example-1" {
  source    = "./example"

  providers = {
    aws = east-1-provider
  }
}

module "example-2" {
  source    = "./example"

  providers = {
    aws = east-2-provider
  }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71865964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档