如何升级或固定Terraform Provider的版本

214次阅读
没有评论

问题描述

在升级或固定Terraform Provider的版本时遇到了问题。他使用了版本3.75.1的AWS Provider,并且希望进行升级。他在.terraform.lock.hcl文件中读取了版本信息,但不知道如何进行升级或固定版本。

解决方案

请注意以下操作可能受Terraform版本差异影响,以及修改前做好备份。

最新版本的升级

您可以使用以下命令升级Terraform Provider的最新版本:

terraform init -upgrade

这将自动升级您的Provider到最新版本,前提是您没有在任何required_providers块中指定版本。

使用required_providers块固定版本

如果您想要固定一个特定的Provider版本,您可以在required_providers块中指定版本约束。例如:

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "4.14.0"
    }
  }
}

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

在上面的示例中,我们在required_providers块中指定了版本约束,使得AWS Provider的版本被固定为4.14.0。

Terraform 0.13之前的版本固定

在Terraform版本0.13之前,您可以在Provider块中直接指定版本,如下所示:

provider "aws" {
  version = "4.14.0"
  region  = "us-east-1"
}

更多官方文档请参考:
升级AWS Provider版本
Provider要求

在选择升级或固定Terraform Provider版本时,您需要根据项目需要和Terraform版本来选择合适的方法。如果您需要固定特定版本以确保稳定性,可以使用required_providers块来实现。如果您想要始终使用最新版本,可以使用terraform init -upgrade命令进行升级。

正文完