使用 Azure CLI 的 Terraform - 建立帐户时出错

Terraform with azure CLI - error building account

使用提供商块

provider "azurerm" {
  subscription_id = var.subscription_id
  version         = "=1.44"
}

并在使用

成功登录后
az login

运行

terraform plan

我收到以下错误:

Error: Error building account: Error getting authenticated object ID: Error parsing json result from the Azure CLI: Error waiting for the Azure CLI: exit status 2

on main.tf line 21, in provider "azurerm":
21: provider "azurerm" {

更新:

如果我将提供程序块更改为:

provider "azurerm" {
 version = "~> 1.43"
}

并设置环境变量

ARM_USE_MSI=true
ARM_SUBSCRIPTION_ID=<...>
ARM_TENANT_ID=<...>
HTTP_PROXY=<...>
HTTPS_PROXY=<...>
http_proxy=<...>
https_proxy=<...>

比执行 terraform plan 后我得到以下错误:

连接到 169.254.169.254 失败。没有到主机的路由。

这很奇怪,在我看来,服务端点 IP "hardcoded" 进入 terraform 客户端。

正在删除变量

ARM_USE_MSI=true

解决了我的问题。

此变量告诉 Terraform 使用托管服务标识。参见docs。问题是,从那时起使用的 Azure 实例元数据服务端点(在上述 IP 上可用)只能从 VM 内访问,而我是 运行 我桌面上的 terraform。

尽管我已经通过 az cli 登录,但强制另一个:

az login

帮我解决了这个问题。

az login --tenant TENANT_ID

使用租户 ID 解决

最初,我尝试使用“az login”登录,但遇到了您发布的类似错误。