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

使用Terraform创建Databricks管理员用户时认证错误排查

问题:使用Databricks Terraform Provider部署资源时出现认证错误

执行terraform plan时收到以下错误:

2023-06-07T14:50:50.4892773Z Error: Invalid JSON received (529 bytes): <!doctype html><html><head><meta charset="utf-8"/><meta http-equiv="Content-Language" content="en"/><title>Databricks - Sign In</title><meta name="viewport" content="width=960"/><link rel="icon" type="image/png" href="/favicon.ico"/><meta http-equiv="content-type" content="text/html; charset=UTF8"/><link rel="icon" href="/favicon.ico"><script defer="defer" src="/static/js/login/login.96b6985d.js"></script></head><body class="light-mode"><uses-legacy-bootstrap><div id="login-page"></div></uses-legacy-bootstrap></body></html>

with module.databricks.data.databricks_group.admins,
on ../modules/landingzone/FADS/databricks/databricks_admin.tf line 8, in data "databricks_group" "admins":
 8: data "databricks_group" "admins" {

当前Terraform配置片段:

provider "databricks" {
  host = azurerm_databricks_workspace.databricks_workspace.workspace_url
  azure_workspace_resource_id = azurerm_databricks_workspace.databricks_workspace.id
}

# Gathers data about the admins Databricks workspace group
data "databricks_group" "admins" {
  display_name = "admins"
  depends_on = [azurerm_databricks_workspace.databricks_workspace]
}

resource "databricks_user" "admin_user" {
    for_each = var.databricks.databricks_admin_users
  user_name = each.key
  depends_on = [azurerm_databricks_workspace.databricks_workspace]
}

部署使用的服务主体拥有订阅Owner权限,询问是否缺少认证配置,以及如何添加。


解答

确实缺少认证配置。当前provider块仅指定了Databricks工作区的地址和资源ID,但没有提供服务主体的认证凭据,导致请求被重定向到Databricks登录页面(错误返回的HTML就是登录页内容)。

需要在databricks provider块中添加服务主体的认证参数,修改后的配置如下:

provider "databricks" {
  host                        = azurerm_databricks_workspace.databricks_workspace.workspace_url
  azure_workspace_resource_id = azurerm_databricks_workspace.databricks_workspace.id
  azure_client_id             = var.azure_client_id # 服务主体的Client ID
  azure_client_secret         = var.azure_client_secret # 服务主体的Client Secret
  azure_tenant_id             = var.azure_tenant_id # Azure租户ID
}

说明:

  • azure_client_id:你的服务主体应用程序ID
  • azure_client_secret:服务主体生成的客户端密钥
  • azure_tenant_id:Azure租户的ID

这些参数可以通过变量传入,也可以直接使用环境变量(如ARM_CLIENT_ID、ARM_CLIENT_SECRET、ARM_TENANT_ID),Terraform会自动读取这些环境变量作为认证凭据。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 23:07:37