使用全球外部应用负载均衡器映射自定义网域

如需为 Cloud Run 服务设置新的公共端点,您可以使用 Cloud Load Balancing 在 Cloud Run 服务前端添加全球外部应用负载均衡器。借助全球外部应用负载均衡器,您可以控制自定义网域设置,但如果您还没有 TLS 证书或使用全球外部应用负载均衡器,则需要执行设置步骤。

使用本页面介绍的 Cloud Run 集成(预览版),您可以使用全球外部应用负载均衡器快速为您的 Cloud Run 服务设置新的自定义网域映射。如果您想要使用现有的全球外部应用负载均衡器,请参阅使用 Cloud Run 设置全球外部应用负载均衡器

准备工作

  • 确保您拥有要对映射到 Cloud Run 服务的网域进行 DNS 更改所需的权限。

所需的角色

如需使用 Cloud Run 集成,您或您的管理员必须向两个不同的主账号授予 IAM 角色

点击查看您的 Google 账号需要的角色

如需获得使用 Cloud Run 集成所需的权限,请让您的管理员向您的 Google 账号授予项目的以下 IAM 角色:

点击查看服务账号需要的角色

如需部署 Cloud Run 服务,您可以使用系统自动创建的 Compute Engine 默认服务账号,也可以指定用户管理的服务账号。服务账号必须具有以下角色:

使用全球外部应用负载均衡器映射自定义网域

您可以使用控制台或命令行映射自定义网域。请注意,SSL 证书预配并且您的网域开始将 HTTPS 流量路由到您的 Cloud Run 服务最多可能需要 1 小时才能完成。

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Run 页面。

    转到 Cloud Run

  2. 在服务列表中,点击要在此集成中使用的服务。

  3. 点击 Integrations(集成)标签。

  4. 点击添加集成

  5. 点击自定义网域 - Google Cloud 负载均衡

    图片

  6. 网域字段中输入网域。

  7. 路径字段中输入您使用的网域路径。

  8. 服务字段中输入要映射到此自定义网域的服务的名称。

  9. 如果您要映射其他网域,请点击添加一项,然后根据需要重复上述步骤,将网域映射到服务。

  10. 如果系统提示您启用 API 列表,请点击启用并等待 API 启用。

  11. 资源下,记下此集成后将创建的新资源。

  12. 点击提交,然后等待集成和资源创建完成:

    • 完成后,系统会创建一个表,其中包含您需要配置的 DNS 记录:使用此表更新 DNS 提供商的 DNS 记录。
    • 在 DNS 提供商处更新 DNS 后,系统最长可能需要 45 分钟来预配 SSL 证书并开始将流量路由到您的服务。

gcloud

  1. 更新到最新的 Google Cloud CLI:

    gcloud components update
  2. 创建集成:

    gcloud beta run integrations create \
    --type=custom-domains \
    --parameters='set-mapping=DOMAIN:SERVICE' \

    您需要进行如下替换:

    • DOMAIN 替换为您的自定义网域,例如 example.comsubdomain.example.com
      • 还可以包含路径,例如 example.com/subpath/*
    • SERVICE 替换为您的 Cloud Run 服务的名称。

    (可选)添加 --service-account=SERVICE_ACCOUNT_EMAIL 标志。

    • SERVICE_ACCOUNT_EMAIL 替换为用于部署服务的用户管理的服务账号电子邮件地址 (PROJECT_NUMBER-compute@developer.gserviceaccount.com)。如果要使用默认计算服务账号 (SERVICE_ACCOUNT_ID@PROJECT_ID.iam.gserviceaccount.com),请省略此标志。

      如需在部署 Cloud Run 集成时继续使用指定的服务账号,请运行以下命令:

      gcloud config set runapps/deployment-service-account
  3. 等待大约 2 到 5 分钟,在此期间,系统会创建完全配置的负载均衡器。该过程完成后,系统会显示以下消息:

    [custom-domains] integration [custom-domains] has been created successfully.
    To complete the process, please ensure the following DNS records are configured for the domains:
    NAME    TTL   TYPE  DATA
    DOMAIN  3600  A     IP_ADDRESS
    It can take up to an hour for the SSL certificate to be provisioned.

    您可以使用 gcloud beta run integrations describe 来查看状态。

  4. 使用显示的 IP_ADDRESS 值在您的 DNS 提供商处更新您的 DNS 记录。在 DNS 提供商处更新 DNS 后,系统最长可能需要 45 分钟来预配 SSL 证书并开始将流量路由到您的服务。

更新具有负载均衡器集成的自定义网域

更新集成会更新与该集成关联的所有 Google Cloud 资源。如需在 Cloud Run 服务中更新具有负载均衡器集成的自定义网域,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Run 页面。

    转到 Cloud Run

  2. 点击要更新的服务。

  3. 点击 Integrations(集成)标签。

  4. 找到具有负载均衡器集成的自定义网域,然后点击修改

  5. 更新完字段后,点击更新

gcloud

  1. 使用以下命令获取可用集成的列表:

    gcloud beta run integrations list
  2. 运行用于更新集成的命令:

    gcloud beta run integrations update INTEGRATION_NAME

    您需要进行如下替换:

    • INTEGRATION_NAME 替换为具有负载均衡器集成的自定义网域的名称。

    (可选)您可以使用以下标志选项:

    选项 说明
    --parameters 为服务设置的自定义网域。
    --service-account 更新服务时指定的用户管理的服务账号电子邮件地址。此服务账号会覆盖部署时所使用的前一个服务账号。

查看具有负载均衡器集成的自定义网域

如需查看使用 Cloud Run 服务的负载均衡器集成的自定义网域的当前状态,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Run 页面。

    转到 Cloud Run

  2. 在服务列表中,点击要在此集成中使用的服务。

  3. 点击 Integrations(集成)标签。

  4. 找到使用您感兴趣的负载均衡器集成的自定义网域,然后点击查看详细信息

gcloud

  1. 使用以下命令获取可用集成的列表:

    gcloud beta run integrations list
  2. 使用返回列表中的名称显示它的详细信息:

    gcloud beta run integrations describe INTEGRATION_NAME

    INTEGRATION_NAME 替换为使用负载均衡器集成的自定义网域的名称。

删除具有负载均衡器集成的自定义网域

如果删除集成,则系统还会删除与该集成关联的所有 Google Cloud 资源,但不会删除 Cloud Run 服务。

如需从 Cloud Run 服务中删除使用负载均衡器集成的自定义网域,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud Run 页面。

    转到 Cloud Run

  2. 点击要删除集成的服务。

  3. 点击 Integrations(集成)标签。

  4. 找到使用您感兴趣的负载均衡器集成的自定义网域,点击集成右侧的省略号图标,然后点击删除

gcloud

  1. 使用以下命令获取可用集成的列表:

    gcloud beta run integrations list
  2. 使用返回列表中的名称删除集成:

    gcloud beta run integrations delete INTEGRATION_NAME

    您需要进行如下替换:

    • INTEGRATION_NAME 替换为具有负载均衡器集成的自定义网域的名称。

    (可选)您可以使用以下标志选项:

    选项 说明
    --service-account 用于执行删除操作的用户管理的服务账号电子邮件地址。

限制

Cloud Run 集成仅在某些区域受支持。如果您需要使用 Cloud Run 集成不支持的区域,请参阅使用 Cloud Run 设置全球外部应用负载均衡器