域映射指向云端服务内的标签 运行

Domain Mapping to point to a tag inside a service on Cloud Run

现在我正在部署到云 运行 和 运行

gcloud run deploy myapp --tag pr123 --no-traffic

然后我可以通过

访问该应用程序
https://pr123---myapp-jo5dg6hkf-ez.a.run.app

现在我想要将自定义域映射到此标记。我知道如何将自定义域指向该服务,但我不知道如何将其指向我的服务的标记版本。

我能否向 DomainMapping 添加标签,使映射获得此版本的云 运行 服务?或者是否有 routeName,例如。 myapp#pr123 在那里可以解决问题?

最后我想要

https://pr123.dev.mydomain.com

作为此服务的端点。

使用自定义域,您可以将 DNS 配置为指向服务,而不是服务的 revision/tag。所以,你不能这样。

解决方案是使用 load balancer with a serverless NEG. The most important is to define the URL mask 来映射负载均衡器接收的 URL 中的标签和服务。

我最终构建了带有网络端点组的负载均衡器(按照建议)。为了进一步参考,这里是我创建它的 terraform 片段。该部分就是您分配给修订版的流量标签。

resource "google_compute_region_network_endpoint_group" "api_neg" {
  name                  = "api-neg"
  network_endpoint_type = "SERVERLESS"
  region                = "europe-west3"
  cloud_run {
    service  = data.google_cloud_run_service.api_dev.name
    url_mask = "<tag>.preview.mydomain.com"
  }
}