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

创建Databricks服务主体OBO令牌时遇ENDPOINT_NOT_FOUND错误求助

解决Databricks Terraform配置中databricks_permissions的ENDPOINT_NOT_FOUND错误

问题分析

你遇到的ENDPOINT_NOT_FOUND: Unsupported path: /api/2.0/accounts/<my account>/scim/v2/Me错误,核心原因是操作上下文不匹配:databricks_permissions资源中authorization = "tokens"属于工作区级别的权限操作,但你的Terraform Provider可能配置成了账户级上下文(指向accounts.cloud.databricks.com),导致请求被发送到了错误的端点。

解决方案

1. 确认Databricks Provider的上下文配置

确保你的Terraform Provider配置是工作区级而非账户级:

  • 工作区Provider的host应为具体工作区的URL(例如https://<workspace-id>.cloud.databricks.com)
  • 账户级Provider的host是https://accounts.cloud.databricks.com,仅用于账户级资源(如账户级服务主体、组等)

如果需要同时管理账户和工作区资源,可配置两个Provider实例:

# 账户级Provider(用于创建账户级服务主体)
provider "databricks" {
  alias    = "account"
  host     = "https://accounts.cloud.databricks.com"
  account_id = "<your-account-id>"
  # 其他认证配置(如service_principal认证)
}

# 工作区级Provider(用于配置工作区权限、OBO令牌相关操作)
provider "databricks" {
  alias    = "workspace"
  host     = "https://<your-workspace-id>.cloud.databricks.com"
  # 其他认证配置
}

2. 为databricks_permissions指定工作区级Provider

修改你的databricks_permissions资源,明确使用工作区级Provider:

resource "databricks_permissions" "token_usage" {
  count      = length(var.principals)
  provider   = databricks.workspace # 指定工作区Provider
  
  authorization = "tokens"
  access_control {
    service_principal_name = databricks_service_principal.sp[count.index].application_id
    permission_level       = "CAN_USE"
  }
}

3. 验证服务主体的工作区访问权限

虽然你的服务主体配置了workspace_access = true,但如果是账户级创建的服务主体,需要确保它已被正确添加到目标工作区。可通过Databricks UI检查:工作区 -> 设置 -> 服务主体,确认目标SP存在且状态为活跃。

额外提示

  • OBO令牌的权限配置完全属于工作区范畴,所有相关操作必须在工作区上下文的Provider下执行
  • 若你的服务主体是工作区级创建的,只需确保Provider指向该工作区即可,无需额外配置账户级Provider

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 00:05:40