本页介绍了如何配置和管理自定义网址,以便为 Cloud Run 服务获取易于输入、令人难忘且可在全球范围内使用的网址,而不是默认的确定性网址:
- 自定义网址格式:
https://CUSTOM_URL_DOMAIN.cloud.run - 默认网址格式:
https://SERVICE_NAME-PROJECT_NUMBER.REGION.run.app
通过使用自定义网址,您可以分享服务,而无需设置自定义网域、DNS 记录或外部负载均衡器。
为 Cloud Run 服务使用自定义网址可带来以下好处:
- 简单网址:将您的服务映射到简洁的
https://CUSTOM_URL_DOMAIN.cloud.run格式。 - 全球可用性:自定义网址可从任何位置访问,与标准
.run.app网址相同。 - 灵活的生命周期:灵活地在服务之间附加、分离或移动自定义网址,而无需部署新修订版本。
- 多个映射:您可以将多个自定义网址映射到单个服务。
准备工作
- 登录您的 Google Cloud 账号。如果您是 Google Cloud新手,请 创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- 在 Google Cloud 项目中设置 Cloud Run 开发环境。
- 安装并初始化 gcloud CLI。
所需的角色
如需获得管理自定义网址所需的权限,请让您的管理员为您授予以下 IAM 角色:
-
如需创建、更新或删除自定义网址映射,您需要拥有项目中的 Cloud Run Admin (
roles/run.admin) 角色
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
限制
- 默认情况下,每个项目最多可以映射 50 个网域。
- 自定义网址子网域的长度必须介于 6 到 63 个字符之间,遵循允许使用字母数字字符和连字符的标准 DNS 命名惯例,并且不能以连字符开头或结尾。
- 某些子网域受到限制。
- 您无法像停用默认
.run.app网址那样暂时停用自定义网址。如需停止从该来源投放流量,您必须删除相应映射。 - 不支持将入站流量限制为内部或内部和 Cloud Load Balancing 流量的 Cloud Run 服务。
- Terraform 不支持自定义网址。为避免潜在的重大变更,请勿使用预览版
domain_mapping资源。 - 自定义网址完全独立。如果您选择停用服务的默认
.run.app网址,您的自定义网址映射仍会完全有效且可供访问。
将自定义网址附加或映射到服务
您可以在部署新服务时为其附加自定义网址,也可以使用 Google Cloud 控制台或 gcloud 将自定义网址映射到现有服务。
将自定义网址附加到新服务
部署新的 Cloud Run 服务时,您可以将自定义网址附加为部署配置的一部分。
在 Google Cloud 控制台中,前往 Cloud Run 服务页面。
点击部署容器。
填写服务的基本配置详细信息。
在自定义网址部分,点击添加自定义网址。
输入有效的自定义网址域名。
可选。如需添加多个自定义网址,请再次点击添加自定义网址。
点击创建。
将自定义网址映射到现有服务
您可以使用Google Cloud 控制台或 gcloud CLI 将自定义网址映射到现有的 Cloud Run 服务。
控制台
在 Google Cloud 控制台中,前往网域映射页面。
点击添加自定义网址。
在服务列表中,选择要映射到的服务。
输入您的自定义网址网域。
点击继续。
如果您想添加多个自定义网址,请再次点击添加自定义网址,然后按照上述步骤操作。
gcloud
如需为现有服务创建自定义网址网域映射,请运行以下命令:
gcloud beta run domain-mappings create \ --service=SERVICE_NAME \ --domain=CUSTOM_URL_DOMAIN.cloud.run
替换以下内容:
- SERVICE_NAME:您要将自定义网址映射到的服务的名称。
- CUSTOM_URL_DOMAIN:您要附加的子网域。
可选。如需使用 gcloud CLI 映射多个自定义网址,请针对每个自定义网址重复执行映射创建命令:
gcloud beta run domain-mappings create \ --service=SERVICE_NAME \ --domain=CUSTOM_URL_DOMAIN_1.cloud.run gcloud beta run domain-mappings create \ --service=SERVICE_NAME \ --domain=CUSTOM_URL_DOMAIN_2.cloud.run
替换以下内容:
- SERVICE_NAME:您要部署的服务的名称。
- CUSTOM_URL_DOMAIN_1:要附加的第一个子网域。
- CUSTOM_URL_DOMAIN_2:要附加的第二个子网域。
如果所请求的子网域已被 Google Cloud中的其他用户或服务使用,您会收到错误消息,并且必须选择唯一的目标子网域。
列出和查看自定义网址
您可以列出所有自定义网址,并查看您环境的映射详细信息。
控制台
在 Google Cloud 控制台中,前往 Cloud Run 页面。
点击相应服务的名称。
转到网络标签页。
在端点标签下的自定义网域部分中,找到您附加的网址。
gcloud
如需列出项目中的所有自定义网址和网域映射,请运行以下命令:
gcloud beta run domain-mappings list
如需查看特定自定义网址网域映射的详细信息,请运行以下命令:
gcloud beta run domain-mappings describe \ --domain=CUSTOM_URL_DOMAIN.cloud.run
将 CUSTOM_URL_DOMAIN 替换为您要描述的子网域。
利用自定义受众群体确保安全
您可以将自定义受众群体附加到自定义网址,以限制访问权限。
gcloud beta run services update SERVICE_NAME \ --add-custom-audiences=CUSTOM_URL_DOMAIN.cloud.run
替换以下内容:
- SERVICE_NAME:服务的名称。
- CUSTOM_URL_DOMAIN:充当自定义受众群体的子网域。
删除自定义网址
如果不再需要某个自定义网址映射,可以将其删除。
控制台
在 Google Cloud 控制台中,前往网域映射页面。
选中要删除的自定义网址旁边的复选框。
点击删除。
gcloud
如需从 Cloud Run 服务中移除自定义网址网域映射,请运行以下命令:
gcloud beta run domain-mappings delete \ --domain=CUSTOM_URL_DOMAIN.cloud.run
将 CUSTOM_URL_DOMAIN 替换为您要删除的子网域。
已知问题
传播延迟时间:创建自定义网址后,可能需要几秒钟才能完全生效。在创建网址后立即访问该网址可能会导致临时路由错误。
更新或移动自定义网址:没有用于自定义网址的直接更新命令。如需将附加的自定义网址从一项服务移动到另一项服务,您必须遵循删除并重新创建的流程。
控制台
在 Google Cloud 控制台中,前往网域映射页面。
选中要移动的自定义网址旁边的复选框。
点击删除。
点击添加自定义网址。
在服务列表中,选择新的目标服务。
输入您之前声明的自定义网址网域。
点击创建,将流量重定向到新服务。
gcloud
从旧服务中删除现有映射:
gcloud beta run domain-mappings delete \ --domain=CUSTOM_URL_DOMAIN.cloud.run
将 CUSTOM_URL_DOMAIN 替换为您之前声明的子网域。
回收网址并将其映射到新服务:
gcloud beta run domain-mappings create \ --service=NEW_SERVICE_NAME \ --domain=CUSTOM_URL_DOMAIN.cloud.run
替换以下内容:
- NEW_SERVICE_NAME:您要将自定义网址迁移到的服务的名称。
- CUSTOM_URL_DOMAIN:您要附加的子网域。
后续步骤
- 详细了解映射自定义网域。
- 了解使用 CDN 传送静态资源。