Logic Apps调用Databricks Notebook时遭遇401未授权错误求助
问题描述
我在Logic Apps中创建了一个HTTP操作,通过POST请求执行Databricks Notebook,但收到401未授权错误:
{ "statusCode": 401, "headers": { "WWW-Authenticate": "basic realm=\"DatabricksRealm\"", "x-databricks-reason-phrase": "Unauthorized", "Vary": "Accept-Encoding", "Date": "Tue, 06 Aug 2024 00:08:59 GMT", "Server": "databricks", "Content-Type": "application/json", "Content-Length": "45" }, "body": { "error_code": "401", "message": "Unauthorized" } }
我已在请求体中指定了Job ID和Notebook的访问地址,且使用Databricks的API Key作为自定义连接器的授权方式,请问是否是Logic Apps缺少访问Databricks的权限导致该错误?
排查与解决方向
401未授权错误不一定是Logic Apps本身缺少权限,更可能是API Key的配置或请求格式问题,按以下步骤排查:
验证API Key的有效性:确认API Key属于拥有Databricks作业执行权限的用户(比如
job.run权限),可以直接用curl命令测试API Key是否能正常调用Databricks API:curl -X POST -u token:<你的API Key> https://<databricks实例URL>/api/2.0/jobs/run-now -d '{"job_id": <你的Job ID>}'如果curl也返回401,说明API Key本身无效或权限不足,需要重新生成或调整用户权限。
检查自定义连接器的授权配置:确保API Key是通过Basic Auth的方式传递——Databricks要求API Key作为Basic Auth的密码部分,用户名留空或填
token。如果Logic Apps自定义连接器的授权方式配置错误(比如把API Key放在请求头的其他字段而非Authorization头),会导致鉴权失败。确认请求目标地址正确性:检查Databricks实例的URL是否正确(比如区域、工作区ID是否匹配),错误的URL也可能触发401错误。
排查网络与防火墙限制:如果Logic Apps所在环境有出站防火墙规则,确认已经允许访问Databricks实例的域名和端口(通常是443)。不过这种情况一般会返回超时或403,而非401,但也可以作为补充排查项。
内容的提问来源于stack exchange,提问作者Shanti

