将 Cloud Run 连接到 Firebase Hosting 以使用自定义网域和 CDN

如需为 Cloud Run 服务设置新的公共端点,您可以在 Cloud Run 服务前端使用 Firebase Hosting。借助 Firebase Hosting,您可以访问全球 CDN,并且可以为您的服务配置免费的自定义网域。Firebase Hosting 可让您将请求定向到您的 Cloud Run 服务,但如果您不熟悉 Firebase Hosting 的用法,则可能需要一些时间来完成初始配置。

使用本页面介绍的 Cloud Run 集成(预览版),您可以通过新的 Firebase Hosting 网站快速公开 Cloud Run 服务,而无需设置 Firebase Hosting。如果您要使用现有网站,请参阅使用 Cloud Run 提供动态内容和托管微服务

准备工作

  • 确保您要集成的 Cloud Run 服务已部署完毕。
  • 查看 Firebase Hosting 价格页面。您需要为集成中使用的各个资源付费。

所需的角色

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

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

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

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

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

将 Cloud Run 服务连接到 Firebase Hosting 网站

您可以使用控制台或命令行连接到 Firebase Hosting 网站。

控制台

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

    转到 Cloud Run

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

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

  4. 点击添加集成

  5. 点击 Firebase Hosting

    图片

  6. 子网域(网站 ID)字段中输入网站 ID。创建后,您的服务将托管在 site_ID.web.app 中。

  7. 如果系统提示您启用 API 列表,请点击启用并等待 API 启用。请注意,Firebase Hosting API 受 Firebase 服务条款的约束。

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

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

    • 完成后会显示网站的公开网址。
    • 您也可以点击提供的链接,直接前往 Firebase 控制台。

命令行

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

    gcloud components update
  2. 创建集成:

    gcloud beta run integrations create \
    --type=firebase-hosting \
    --service=SERVICE \
    --parameters='site-id=SITE_ID'

    您需要在其中:

    • SITE_ID 替换为您要创建和使用的 Firebase Hosting 网站 ID。这显示为 Firebase 网址“SITE_ID.web.app”的子网域
    • 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. 创建 Firebase Hosting 网站后,等待大约 1-2 分钟。 该过程完成后,系统会显示以下成功消息:

    [firebase-hosting] integration [firebase-hosting-1] has been created successfully.

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

更新 Firebase Hosting 集成

更新集成会更新与该集成关联的所有 Google Cloud 资源。如需在 Cloud Run 服务中更新 Firebase Hosting 集成,请执行以下操作:

控制台

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

    转到 Cloud Run

  2. 点击要更新的服务。

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

  4. 找到 Firebase Hosting 集成,然后点击修改

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

命令行

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

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

    gcloud beta run integrations update INTEGRATION_NAME

    您需要在其中:

    • INTEGRATION_NAME 替换为您的 Firebase Hosting 集成的名称。

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

    选项 说明
    --parameters 您要用于替换 Cloud Run 服务的网站 ID。
    --service-account 更新服务时指定的用户管理的服务账号电子邮件地址。此服务账号会覆盖部署时所使用的前一个服务账号。

查看 Firebase Hosting 集成

如需查看 Cloud Run 服务的 Firebase Hosting 集成的当前状态,请执行以下操作:

控制台

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

    转到 Cloud Run

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

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

  4. 找到相关 Firebase Hosting 集成,然后点击查看详情

命令行

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

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

    gcloud beta run integrations describe INTEGRATION_NAME

    INTEGRATION_NAME 替换为您的 Firebase Hosting 集成的名称。

删除 Firebase Hosting 集成

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

如需从 Cloud Run 服务中删除 Firebase Hosting 集成,请执行以下操作:

控制台

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

    转到 Cloud Run

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

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

  4. 找到您感兴趣的 Firebase Hosting 集成,点击集成右侧的省略号图标,然后点击删除

命令行

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

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

    gcloud beta run integrations delete INTEGRATION_NAME

    您需要在其中:

    • INTEGRATION_NAME 替换为您的 Firebase Hosting 集成的名称。

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

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

限制

Cloud Run 集成仅在某些区域受支持。如果您需要使用 Cloud Run 集成不支持的区域,请参阅使用 Cloud Run 提供动态内容和托管微服务