错误:不支持Terraform核心版本



我有一个简单的地形配置如下。

# Terraform settings Block
terraform {
required_version = "~> 1.0.0"
required_providers {
azurerm = {
source  = "hashicorp/azurerm" # https://registry.terraform.io/providers/hashicorp/azurerm/latest
version = "~> 3.0"
}
}
}
provider "azurerm" {
features { }
}
resource "azurerm_resource_group" "rg" {
name     = var.resource_group_name
location = var.resource_group_location
}

运行

terraform init

我得到以下错误:

╷
│ Error: Unsupported Terraform Core version
│
│   on main.tf line 3, in terraform:
│    3:   required_version = "~> 1.0.0"
│
│ This configuration does not support Terraform version 1.2.2. To proceed, either choose another supported Terraform version or update this version
│ constraint. Version constraints are normally set for good reason, so updating the constraint may lead to other errors or unexpected behavior.    
╵

如果按以下方式设置所需的版本,则可以正常工作(Changed ~>祝辞=)。

required_version = ">= 1.0.0"

看了这个文档,但不清楚该怎么做。我应该返回到required_version = ">= 1.0.0">

只是想确保最新的次要项到位。另外,在生产环境中,建议使用波浪号(~)。现在有点糊涂了。

您已经安装了TF版本1.2.2,这显然比1.0.0更新得多。如果你想使用旧版本的TF,你需要下载旧版本的terraform,并使用它来运行你的脚本。

在将地形和azurerm地形提供程序升级到最新版本(截至撰写此答案之日)后,我遇到了同样的问题:

terraform {
backend "azurerm" { }
required_version = "1.2.5"
required_providers {
azurerm = {
source  = "hashicorp/azurerm"
version = "3.14.0"
}
}
}

我设法通过使用旧版本的terraform(1.2.3而不是1.2.5)在本地修复了这个问题,所以我猜你遇到的问题和我的相似。

terraform {
backend "azurerm" { }
required_version = "1.2.3"
required_providers {
azurerm = {
source  = "hashicorp/azurerm"
version = "3.14.0"
}
}
}

然而,当在Azure DevOps管道的ubuntu 20.04代理中运行terraform时,完全相同的提供程序配置,我仍然得到相同的错误(出于一些奇怪的原因-可能是bug ?-管道会尝试使用地形1.2.4,当我把它锁定在1.2.3)…我能够通过使用与>=:

相同的版本来修复它。
terraform {
backend "azurerm" { }
required_version = ">=1.2.3"
required_providers {
azurerm = {
source  = "hashicorp/azurerm"
version = ">=3.14.0"
}
}
}

最新更新