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

调用Databricks创建令牌接口报400 Invalid resource ID错误

故障原因

返回400 Invalid resource ID是因为请求头X-Databricks-Azure-Workspace-Resource-Id传值不符合要求。该字段不能仅传入数字格式的工作区ID,必须传入完整的ARM规范工作区资源ID。

完整资源ID的格式为:
/subscriptions/<Azure订阅ID>/resourceGroups/<工作区所属资源组名>/providers/Microsoft.Databricks/workspaces/<Databricks工作区名称>

修正方案

原脚本除了资源ID传值错误外,还存在请求体未显式序列化为JSON的潜在问题,修正后的可运行脚本如下:

# 替换为实际环境参数
$subscriptionId = "你的Azure订阅ID"
$resourceGroupName = "Databricks工作区所在资源组名称"
$workspaceName = "Databricks工作区名称"
$ADB_WORKSPACE_URL = "adb-<你的工作区标识>.<区域编号>.azuredatabricks.net"

# 构造合规的完整工作区资源ID
$ADB_WORKSPACE_RESOURCE_ID = "/subscriptions/$subscriptionId/resourceGroups/$resourceGroupName/providers/Microsoft.Databricks/workspaces/$workspaceName"

# 获取两类访问令牌
$adbGlobalToken = (az account get-access-token --resource 2ff814a6-3304-4ab8-85cb-cd0e6f879c1d | ConvertFrom-Json).accessToken
$azureApiToken = (az account get-access-token --resource "https://management.core.windows.net/" | ConvertFrom-Json).accessToken

# 构造请求头
$headers = @{
    "Authorization" = "Bearer $adbGlobalToken"
    "X-Databricks-Azure-SP-Management-Token" = $azureApiToken
    "X-Databricks-Azure-Workspace-Resource-Id" = $ADB_WORKSPACE_RESOURCE_ID
}

# 构造请求体并提前序列化为JSON格式
$body = @{
    "comment" = "This is an example token"
    "lifetime_seconds" = 300
} | ConvertTo-Json

$uri = "https://$ADB_WORKSPACE_URL/api/2.0/token/create"
Write-Host $uri

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
$json = Invoke-RestMethod -Method Post -Uri $uri -Headers $headers -ContentType "application/json" -Body $body  

Write-Host $json
注意事项
  • 执行脚本前需通过az login完成Azure CLI登录,确认当前账号对目标Databricks工作区拥有对应操作权限
  • 需保证登录账号所属Azure AD租户与Databricks工作区所属租户一致,避免出现跨租户权限错误

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 15:27:17