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

配置IAP与自定义域名后,如何用MlflowClient访问Cloud Run上的MLflow服务?

配置MLflow Client访问带IAP认证的Cloud Run MLflow服务器

要让MlflowClient访问启用IAP认证的自定义域名MLflow服务器,核心是处理Google身份认证,将有效凭证传递给MLflow的请求头,具体步骤如下:

1. 安装必要依赖

首先安装Google身份认证相关库,用于获取IAP所需的访问令牌:

pip install google-auth google-auth-oauthlib google-auth-httplib2

2. 编写认证并访问的代码

通过Google Auth库获取有效凭据,生成访问令牌后注入MLflow Client的请求头,实现认证访问:

import google.auth
from google.auth.transport.requests import Request
import mlflow
from mlflow.tracking import MlflowClient

# 1. 设置自定义域名的MLflow跟踪地址
mlflow.set_tracking_uri("https://mlflow.test.com")

# 2. 获取Google身份凭证(本地环境需先通过`gcloud auth login`登录有权限的账号)
credentials, _ = google.auth.default(scopes=["openid", "email", "profile"])
if not credentials.valid:
    credentials.refresh(Request())

# 3. 生成访问令牌并注入MLflow请求头
token = credentials.token
client = MlflowClient()
client._tracking_client._tracking_store._http_client.headers.update(
    {"Authorization": f"Bearer {token}"}
)

# 4. 执行MLflow操作示例
experiment_id = client.create_experiment("iap-protected-experiment")
run = client.create_run(experiment_id)
client.log_param(run.info.run_id, "test_param", 123)

print(f"实验创建成功,ID: {experiment_id}")
print(f"运行创建成功,ID: {run.info.run_id}")

3. 关键配置验证

  • 本地环境凭据:确保已通过gcloud auth login登录拥有该Cloud Run实例IAP访问权限的谷歌邮箱账号。
  • 服务器/生产环境:使用服务账号密钥,设置环境变量GOOGLE_APPLICATION_CREDENTIALS指向密钥文件,同时将该服务账号添加到Cloud Run实例的IAP授权列表(授予Cloud Run Invoker角色)。
  • IAP授权检查:在GCP控制台的Cloud Run实例「安全」标签页中,确认你的账号/服务账号已被添加到IAP授权列表,允许访问该实例。

注意事项

  • 自定义域名必须配置有效的SSL证书,IAP和MLflow均要求HTTPS连接。
  • 访问令牌会过期,代码中已包含凭据刷新逻辑,确保每次请求使用有效令牌。
  • 若遇到权限错误,优先检查IAP授权列表是否正确,以及凭据对应的账号是否具备访问权限。

内容的提问来源于stack exchange,提问作者Thanh Long Phan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 03:27:38