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

在Azure ML计算集群中调用MLFlow获取生产环境最新模型版本时遇403异常

Azure计算集群MLFlow获取生产模型版本报403错的解决思路

先查权限是否到位

  • 模型注册表权限:你本地能用个人账号正常访问,但集群用的身份(服务主体/托管标识)大概率没配足权限。得给这个身份加MLFlow Model Registry Reader或Contributor角色,针对目标模型所在的注册表。
  • 工作区基础权限:除了模型注册表,还要确认这个身份有Azure ML工作区的Reader或Data Scientist权限,没工作区访问权的话,连模型注册表的门都进不去。

检查配置项有没有漏

  • 核心环境变量:集群运行的脚本里必须设好AZUREML_ARM_SUBSCRIPTION_ID、AZUREML_ARM_RESOURCE_GROUP、AZUREML_ARM_WORKSPACE_NAME这三个变量,MLFlow靠它们找对应的工作区,本地可能是Azure CLI自动帮你填了,但集群得手动设。
  • 托管标识配置:如果用集群的系统托管标识,得先在集群设置里开启用托管标识,再给这个标识分配上面说的权限。要是用这个的话,DefaultAzureCredential会自动识别,不用额外传密钥。
  • MLFlow跟踪URI:集群里必须显式设置MLFlow的跟踪URI,指向你的Azure ML工作区端点,代码如下:
    import mlflow
    mlflow.set_tracking_uri("azureml://<region>.api.azureml.ms/mlflow/v1.0/subscriptions/<订阅ID>/resourceGroups/<资源组>/providers/Microsoft.MachineLearningServices/workspaces/<工作区名>")
    
    本地可能登录CLI后自动配置了,集群环境不能省这一步。

额外排查方向

  • ClientSecretCredential参数正确性:如果用的是这个,要确认tenant_id、client_id、client_secret全对,而且这个服务主体的权限是针对当前工作区的,别串了租户或工作区。
  • 网络隔离问题:要是工作区开了虚拟网络隔离,得确认集群所在子网能访问MLFlow的API端点,要么配服务端点要么设私有链接,不然网络不通也会报403,看起来像权限错了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 08:23:27