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

Terraform无法通过服务主体认证Databricks的问题及解决办法

Terraform配置Databricks认证报错处理

一、服务主体认证报错:Error: cannot create schema: invalid Databricks Workspace configuration

问题原因

你当前将host配置为账号级URL https://accounts.azuredatabricks.net,但创建工作区内资源(如schema)时,必须使用工作区专属URL,而非账号管理入口的URL。

修正后的配置示例

将host替换为目标Databricks工作区的URL,可通过data.azurerm_databricks_workspace获取:

provider "databricks" {
  host                = data.azurerm_databricks_workspace.workspace_data.workspace_url
  account_id          = module.global_settings.databricks_account_id
  azure_client_id     = module.global_settings.databricks_client_id
  azure_client_secret = data.azurerm_key_vault_secret.sp_db.value
  azure_tenant_id     = module.global_settings.azure_tenant_id
}

二、MSI认证超时错误:failed during request visitor: inner token: token request: Get "http://XXX.XXX.XXX.XXX/metadata/identity/oauth2/token?api-version=2018-02-01&resource=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX": context deadline exceeded

问题原因

  1. 运行环境限制:MSI认证依赖Azure实例元数据服务(IMDS),如果Terraform在Azure外部环境运行(如本地机器),无法访问IMDS的专属地址http://169.254.169.254,导致请求超时。
  2. 网络策略拦截:若在Azure资源内部运行,可能存在NSG规则或防火墙阻止了对IMDS地址的访问。
  3. 资源ID配置错误:azure_workspace_resource_id需填写完整的工作区资源ID(格式为/subscriptions/{订阅ID}/resourceGroups/{资源组}/providers/Microsoft.Databricks/workspaces/{工作区名称}),而非仅workspace_id字段值。

解决办法

  • 若在本地运行Terraform,放弃MSI认证,使用上述修正后的服务主体认证配置。
  • 若在Azure资源内运行,检查网络规则,确保允许访问http://169.254.169.254的元数据服务端口。
  • 修正azure_workspace_resource_id为完整资源ID,示例:
provider "databricks" {
  host                        = data.azurerm_databricks_workspace.workspace_data.workspace_url
  azure_workspace_resource_id = data.azurerm_databricks_workspace.workspace_data.id
  
  azure_use_msi = true
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.14 06:43:12