Terraform 应用结果导致从 Azure CLI 填充客户端 ID 时出错

Terraform apply results in Error populating Client ID from the Azure CLI

我尝试使用 terraform apply 应用地形规划。但是当我 运行 命令时,我得到以下错误

Error: Error building AzureRM Client: Error populating Client ID from the Azure CLI: 
No Authorization Tokens were found - 
please ensure the Azure CLI is installed and then log-in with `az login`.

我确实安装了 Azure CLI 并使用 az login 登录。当我 运行 az login 我被重定向到我可以正常登录的登录页面。

另外 terraform init 也没有任何问题。

在我的地形文件下面:

provider "azurerm" {
  version = "1.38.0"
}

我也尝试提供订阅和租户 ID,但没有帮助:

provider "azurerm" {
  version = "1.38.0"

  subscription_id = "00000000-0000-0000-0000-000000000000"
  tenant_id       = "00000000-0000-0000-0000-000000000001"
}

Error: Error building AzureRM Client: Error populating Client ID from the Azure CLI: No Authorization Tokens were found - please ensure the Azure CLI is installed and then log-in with az login.

错误是由于您使用的 Azure CLI 版本造成的。 Azure CLI 版本 2.30.0 中有一个 重大更改,其中 Azure 迁移了身份验证从 ADALMSAL。为此,如果您 使用最新的 Azure CLI 和 Terraform azurerm old 那么,它将 身份验证失败这将导致错误.

解决问题,您将必须使用最新的 Azure CLI 版本,即2.32.0 同时尝试使用最新的 terraform azurerm 提供商,即 2.92.0.

升级CLI版本,可以运行az upgrade命令并在 terraform 你可以使用下面的:

terraform {
  required_providers {
    azurerm = {
      source = "hashicorp/azurerm"
      version = "2.92.0"
    }
  }
}

provider "azurerm" {
  # Configuration options
}

您可以参考这些类似的Github问题很好:Issue 1 and Issue 2