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

在Databricks通过MLflow向AzureML注册模型遇403权限错误求助

问题:Azure Databricks中使用MLflow向Azure ML Studio注册模型时出现403权限错误

在Azure Databricks平台训练模型,想要将模型注册到Azure Machine Learning Studio,已创建服务主体用于身份认证,但使用MLflow 2.4和2.5版本时,无法记录实验或注册模型,代码及报错信息如下:

原测试代码

from azureml.core.authentication import ServicePrincipalAuthentication
from azureml.core import Workspace, Experiment, RunConfiguration, Environment
from azure.identity import DefaultAzureCredential
from azureml.core.model import Model
subscription_id = ""
resource_group = ""
workspace = ""

srv_prc = ServicePrincipalAuthentication()

ws = Workspace()
       mlflow.set_tracking_uri("azureml://eastus.api.azureml.ms/mlflow/v1.0/subscriptions//resourceGroups/mlopstest/providers/Microsoft.MachineLearningServices/workspaces/")

mlflow.set_experiment(experiment_name='mlopstest1')

报错信息(已翻译)

MlflowException: 向端点/api/2.0/mlflow/experiments/get-by-name发送API请求失败,错误代码403 != 200。响应体:''

问题分析与解决步骤

1. 修正代码中的关键错误

你的代码存在多处配置缺失,导致认证和连接失败:

  • 服务主体认证未传入必要参数(租户ID、主体ID、密码)
  • Workspace实例化缺少必填的资源参数
  • MLflow跟踪URI不完整(订阅ID为空)

修正后的代码如下:

import mlflow
from azureml.core.authentication import ServicePrincipalAuthentication
from azureml.core import Workspace

# 填充实际的Azure资源信息
subscription_id = "你的订阅ID"
resource_group = "你的资源组名称"
workspace_name = "你的Azure ML工作区名称"
tenant_id = "服务主体所属租户ID"
sp_id = "服务主体应用ID"
sp_password = "服务主体密码"

# 初始化服务主体认证
srv_prc = ServicePrincipalAuthentication(
    tenant_id=tenant_id,
    service_principal_id=sp_id,
    service_principal_password=sp_password
)

# 连接Azure ML工作区
ws = Workspace(
    subscription_id=subscription_id,
    resource_group=resource_group,
    workspace_name=workspace_name,
    auth=srv_prc
)

# 使用工作区自动生成的MLflow跟踪URI(避免手动拼接出错)
mlflow.set_tracking_uri(ws.get_mlflow_tracking_uri())

# 设置目标实验
mlflow.set_experiment(experiment_name='mlopstest1')

2. 验证服务主体权限

  • 确保服务主体被分配了Azure ML工作区的参与者角色(或具备Microsoft.MachineLearningServices/workspaces/experiments/write、Microsoft.MachineLearningServices/workspaces/models/write等权限的自定义角色)
  • 在Azure门户的工作区**访问控制(IAM)**中检查服务主体的权限配置

3. 其他检查项

  • 确认Databricks集群网络可访问Azure ML的公共端点(若使用私有网络,需配置VNet对等连接或服务端点)
  • 建议使用Azure ML工作区推荐的MLflow版本(可在Azure ML Studio的"管理"->"MLflow"页面查看兼容版本)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 19:01:06