我们一直在使用旧版本的 Terraform 和 azurerm 提供程序,我正在尝试更新每个版本的较新(对我们而言)版本的代码,在这种情况下:
作为重新编码的一部分,我将改用 Terraform 提供程序块:
terraform {
required_version = "~> 0.13"
required_providers {
azurerm = {
version = "= 2.25.0"
source = "hashicorp/azurerm"
}
}
}
provider azurerm {
skip_provider_registration = true
features {}
}
Terraform 正在下载提供者的 v2.25 版本,但也正在下载 v2.67 版本:
$ terraform init
Initializing the backend...
Initializing provider plugins...
- terraform.io/builtin/terraform is built in to Terraform
- Finding hashicorp/azurerm versions matching "2.25.0"...
- Finding latest version of -/azurerm...
- Installing hashicorp/azurerm v2.25.0...
- Installed hashicorp/azurerm v2.25.0 (signed by HashiCorp)
- Installing -/azurerm v2.67.0...
- Installed -/azurerm v2.67.0 (signed by HashiCorp)
到目前为止,这似乎不是问题,但我不明白为什么要下载多个版本。可能是因为在另一个定义后端的代码文件中(我们使用 Azure 存储作为 Terraform 状态),它看到了“azurerm”引用并将其视为“新”引用?
terraform {
backend azurerm {
container_name = "terraforminfra-v2"
key = "state/postgres.tfstate"
}
}
答案 0 :(得分:0)
好的,我想通了……对提供者的“旧”引用仍处于 Terraform 状态,我认为这是触发下载最新版本的原因。