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

如何通过CLI导出并部署GCP负载均衡的URL Map路由规则?

仅用GCP CLI实现负载均衡路由规则的版本控制与部署

以下是不用Terraform,纯CLI操作的完整流程:

1. 导出现有URL Map配置(若已通过控制台创建)

如果你的负载均衡器已经通过控制台配置了路由规则,后台其实已经生成了对应的URL Map。先通过命令查看全局URL Map列表(区域负载均衡去掉--global):

gcloud compute url-maps list --global

找到目标URL Map名称后,导出为YAML文件:

gcloud compute url-maps export YOUR_URL_MAP_NAME --destination=url-map.yaml --global

导出的文件包含所有主机匹配器、路径匹配器配置,可直接存入代码库。

2. 编辑URL Map的YAML配置

若需新增或修改规则,直接编辑url-map.yaml,以下是涵盖主机、路径匹配的完整示例:

name: my-production-url-map
defaultService: https://www.googleapis.com/compute/v1/projects/your-project-id/global/backendServices/default-backend
hostRules:
- hosts:
  - app.yourdomain.com
  - admin.yourdomain.com
  pathMatcher: app-path-matcher
- hosts:
  - api.yourdomain.com
  pathMatcher: api-path-matcher
pathMatchers:
- name: app-path-matcher
  defaultService: https://www.googleapis.com/compute/v1/projects/your-project-id/global/backendServices/app-backend
  pathRules:
  - paths:
    - /dashboard/*
    service: https://www.googleapis.com/compute/v1/projects/your-project-id/global/backendServices/admin-backend
- name: api-path-matcher
  defaultService: https://www.googleapis.com/compute/v1/projects/your-project-id/global/backendServices/api-backend
  pathRules:
  - paths:
    - /v1/*
    service: https://www.googleapis.com/compute/v1/projects/your-project-id/global/backendServices/api-v1-backend

3. 验证配置合法性

部署前先验证YAML配置是否正确,避免部署失败:

gcloud compute url-maps validate --source=url-map.yaml --global

还可以测试特定主机和路径的匹配结果:

gcloud compute url-maps test YOUR_URL_MAP_NAME --host=app.yourdomain.com --path=/dashboard/profile --global

4. 更新URL Map配置

将修改后的YAML部署到GCP:

gcloud compute url-maps update YOUR_URL_MAP_NAME --source=url-map.yaml --global

5. 关联URL Map到负载均衡器

URL Map需要绑定到目标HTTP/HTTPS代理才能生效(负载均衡器前端指向该代理),执行对应命令更新代理:

针对HTTPS负载均衡:

gcloud compute target-https-proxies update YOUR_TARGET_PROXY_NAME --url-map=YOUR_URL_MAP_NAME --global

针对HTTP负载均衡:

gcloud compute target-http-proxies update YOUR_TARGET_PROXY_NAME --url-map=YOUR_URL_MAP_NAME --global

关于控制台的疑惑解答

  • 控制台的「路由规则」本质是URL Map的可视化编辑器,高级视图的配置最终会同步到对应的URL Map实体,但控制台未开放完整YAML导出/编辑入口,因此必须通过CLI操作URL Map实体。
  • 控制台高级视图仅支持编辑路径匹配器的YAML,是因为它将主机匹配器拆分为单独的文本输入项,但CLI导出的完整YAML可统一配置主机和路径规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 22:37:31