You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AKS集群部署时terraform init查询hashicorp提供者包失败如何解决

问题原因

错误是因为代码中使用了azure前缀的数据源,你仅在配置中声明了官方Azure Provider hashicorp/azurerm,Terraform会自动尝试拉取不存在的hashicorp/azure Provider,导致初始化失败。

需修改的配置项
  • 数据源命名错误:你定义的data "azure_key_vault_secret"不属于azurerm Provider,需修改为azurerm_key_vault_secret
  • 多余的Key Vault数据源配置:你定义的data "azurerm_key_vault" "keyVaultClientID"参数错误,该数据源不支持key参数,且你不需要单独查询Key Vault本身,直接查询Key Vault内的秘密即可
  • 数据源引用错误:你原本在AKS配置中引用data.azurerm_key_vault_secret.keyVaultClientID.value属于对象引用错误,Key Vault数据源本身没有value属性,直接查询两个对应秘密即可
操作步骤
  • 先删除本地缓存文件:执行rm -rf .terraform .terraform.lock.hcl(Windows环境手动删除对应目录和文件),避免旧缓存影响
  • 替换错误的数据源和引用配置,参考以下修正后的代码片段:
# 直接拉取Key Vault中存储的client id秘密
data "azurerm_key_vault_secret" "client_id" {
  name         = "AKSClientID"
  key_vault_id = var.keyvaultID
}

# 直接拉取Key Vault中存储的client secret秘密
data "azurerm_key_vault_secret" "client_secret" {
  name         = "AKSClientSecret"
  key_vault_id = var.keyvaultID
}

resource "azurerm_kubernetes_cluster" "test_cluster" {
  name = var.name
  location = var.location
  resource_group_name = var.resourceGroup
  dns_prefix  = ""

  default_node_pool {
    name = "default"
    node_count = 1
    vm_size = "Standard_D2_v2"
  }

  service_principal {
    client_id = data.azurerm_key_vault_secret.client_id.value
    client_secret = data.azurerm_key_vault_secret.client_secret.value
  }

  tags = {
    "Environment" = "Development"
  }
}
  • 重新执行terraform init即可正常拉取Provider完成初始化

内容的提问来源于stack exchange,提问作者Hvaandres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 01:36:03