如何将请求路由至Cloud Run的特定旧版本?
可以将请求路由到Cloud Run的0流量旧版本吗?
当然可以,Cloud Run支持通过版本特定域名直接访问旧版本,不管它的流量分配比例是多少。以下是具体实现方式:
操作步骤
- 获取目标旧版本的专属域名:在Cloud Run控制台的版本列表中,每个版本都有独立的域名(格式一般为
<服务名>-<版本哈希>-<项目ID>-<区域>.a.run.app) - 修改请求代码,用该版本的专属域名替换原本的通用服务域名
修改后的代码示例
from google_cloud_utilities import get_gcp_identity_token import requests # 替换为目标旧版本的专属域名 version_specific_url = "your-service-abc123-your-project-us-central1.a.run.app" identity_token = get_gcp_identity_token(version_specific_url) headers = { "Content-Type": "application/json", "Authorization": f"Bearer {identity_token}" } response = requests.post(f"https://{version_specific_url}/predict", json={"data": data_for_prediction}, headers=headers)
关键注意点
- 身份令牌必须针对该版本的专属域名生成,不能复用通用服务域名的令牌
- 只要旧版本未被删除,哪怕流量分配为0,也能通过专属域名正常接收请求
- 若需批量测试旧版本,也可临时调整Cloud Run的流量分配比例,但直接使用版本专属域名更适合定向测试单一版本
内容的提问来源于stack exchange,提问作者John F
相关产品推荐
相关产品推荐

