如何固定 Terraform 提供商?

use*_*691 6 terraform terraform-provider-aws

我正在开发 terraform rds 集群来构建 aurora,有人可以帮助我如何将 aws 提供程序版本固定到 2.0 吗?

这是正确的方法吗?

provider "aws" {
  region = "us-east-1"

  version = "<= 2.0"
}
Run Code Online (Sandbox Code Playgroud)

另外,我的模块之前使用的是 2.46 版本,我在尝试降级时是否应该遵循任何步骤?

使用terraform 0.12.6版本

小智 6

对于在搜索引擎上找到此内容的任何人来说,Nathan 在 2020 年的答案是正确的,但在提供程序块中设置版本约束现在已被弃用。

required_providers新推荐的方法是在全局配置块中设置terraform

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "= 2.0"
    }
  }
}
Run Code Online (Sandbox Code Playgroud)

相反,如果您想固定主要版本并允许次要版本递增,请使用~>运算符,该运算符仅允许指定的最右侧版本递增。例如,~> 3.0允许升级该空间中的任何版本3.x更多信息可以在版本约束文档中找到。

有关详细信息,请参阅有关提供商要求的官方文档。


Nat*_*ths 1

您只需使用 equals 运算符=和 not <=,这意味着“小于或等于版本 2.0”。

如果您希望它仅使用 2.0 版本:

provider "aws" {
  region = "us-east-1"

  version = "= 2.0"
}
Run Code Online (Sandbox Code Playgroud)

另请参阅https://www.terraform.io/docs/configuration/terraform.html#specifying-required-provider-versions

  • `version = "2.0"` 也将表示完全匹配。 (3认同)