创建自定义网址

本页介绍了如何配置和管理自定义网址,以便为 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 网址相同。
  • 灵活的生命周期:灵活地在服务之间附加、分离或移动自定义网址,而无需部署新修订版本。
  • 多个映射:您可以将多个自定义网址映射到单个服务。

准备工作

  1. 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 the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  2. Verify that billing is enabled for your Google Cloud project.

  3. 在 Google Cloud 项目中设置 Cloud Run 开发环境。
  4. 安装并初始化 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 服务时,您可以将自定义网址附加为部署配置的一部分。

  1. 在 Google Cloud 控制台中,前往 Cloud Run 服务页面。

    转到 Cloud Run

  2. 点击部署容器。

  3. 填写服务的基本配置详细信息。

  4. 在自定义网址部分,点击添加自定义网址。

  5. 输入有效的自定义网址域名。

  6. 可选。如需添加多个自定义网址,请再次点击添加自定义网址。

  7. 点击创建。

将自定义网址映射到现有服务

您可以使用Google Cloud 控制台或 gcloud CLI 将自定义网址映射到现有的 Cloud Run 服务。

控制台

  1. 在 Google Cloud 控制台中,前往网域映射页面。

    前往“网域映射”

  2. 点击添加自定义网址。

  3. 在服务列表中,选择要映射到的服务。

  4. 输入您的自定义网址网域。

  5. 点击继续。

如果您想添加多个自定义网址,请再次点击添加自定义网址,然后按照上述步骤操作。

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中的其他用户或服务使用,您会收到错误消息,并且必须选择唯一的目标子网域。

列出和查看自定义网址

您可以列出所有自定义网址,并查看您环境的映射详细信息。

控制台

  1. 在 Google Cloud 控制台中,前往 Cloud Run 页面。

    转到 Cloud Run

  2. 点击相应服务的名称。

  3. 转到网络标签页。

  4. 在端点标签下的自定义网域部分中,找到您附加的网址。

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:充当自定义受众群体的子网域。

删除自定义网址

如果不再需要某个自定义网址映射,可以将其删除。

控制台

  1. 在 Google Cloud 控制台中,前往网域映射页面。

    前往“网域映射”

  2. 选中要删除的自定义网址旁边的复选框。

  3. 点击删除。

gcloud

如需从 Cloud Run 服务中移除自定义网址网域映射,请运行以下命令:

gcloud beta run domain-mappings delete \
    --domain=CUSTOM_URL_DOMAIN.cloud.run

将 CUSTOM_URL_DOMAIN 替换为您要删除的子网域。

已知问题

  • 传播延迟时间:创建自定义网址后,可能需要几秒钟才能完全生效。在创建网址后立即访问该网址可能会导致临时路由错误。

  • 更新或移动自定义网址:没有用于自定义网址的直接更新命令。如需将附加的自定义网址从一项服务移动到另一项服务,您必须遵循删除并重新创建的流程。

    控制台

    1. 在 Google Cloud 控制台中,前往网域映射页面。

      前往“网域映射”

    2. 选中要移动的自定义网址旁边的复选框。

    3. 点击删除。

    4. 点击添加自定义网址。

    5. 在服务列表中,选择新的目标服务。

    6. 输入您之前声明的自定义网址网域。

    7. 点击创建,将流量重定向到新服务。

    gcloud

    1. 从旧服务中删除现有映射:

      gcloud beta run domain-mappings delete \
          --domain=CUSTOM_URL_DOMAIN.cloud.run

      将 CUSTOM_URL_DOMAIN 替换为您之前声明的子网域。

    2. 回收网址并将其映射到新服务:

      gcloud beta run domain-mappings create \
          --service=NEW_SERVICE_NAME \
          --domain=CUSTOM_URL_DOMAIN.cloud.run

      替换以下内容:

      • NEW_SERVICE_NAME:您要将自定义网址迁移到的服务的名称。
      • CUSTOM_URL_DOMAIN:您要附加的子网域。

后续步骤