映射自定义网域

您可以设置自定义网域,而不是 Cloud Run 为已部署服务提供的默认地址。

您可以通过以下方式为 Cloud Run 服务设置自定义网域:

使用 HTTP(S) 负载平衡器的一个好处是,它可让您更好地控制自定义网域设置。例如,它允许您使用自己的 TLS 证书,而不是使用 Cloud Run 网域映射时自动提供的证书。借助负载平衡器,您可以将特定网址路径路由到 Cloud Run 服务。

Cloud Run 网域映射限制

无法在以下区域中使用 Cloud Run 网域映射:

  • asia-east2
  • asia-northeast2
  • asia-northeast3
  • asia-southeast1
  • asia-southeast2
  • asia-south1
  • australia-southeast1
  • europe-west2
  • europe-west3
  • europe-west6
  • northamerica-northeast1
  • southamerica-east1
  • us-west2
  • us-west3
  • us-west4

在这些区域中,设置自定义网域的唯一方法是配置 HTTP(S) 负载平衡器

使用 Cloud Run 网域映射时,您需要将自定义网域映射到服务,然后更新 DNS 记录。您可以映射网域(如 example.com)或子网域(如 subdomain.example.com)。您只能将网域映射到 /,而不能映射到 /users 等特定网址路径。需要注意以下几点:

  • 当您将服务映射到自定义网域时,系统会自动为 HTTPS 连接发放并续订代管式证书。
  • 预配 SSL 证书通常需要大约 15 分钟,但最多可能需要 24 小时。
  • 您不能上传和使用自己的证书。
  • 您可以将多个自定义网域映射到同一 Cloud Run 服务。

准备工作

购买新网域,除非您已经有要使用的网域。您可以使用任何域名注册商,但如果使用 Google DomainsCloud Domains,系统会自动为 Cloud Run 验证网域,您无需经历网域验证流程。

如果要向 Cloud Domains 注册网域,请参阅在 Cloud Run 控制台中向 Cloud Domains 注册网域

将自定义网域映射到服务

您可以使用 Google Cloud Console 或 gcloud 命令行工具将自定义网域映射到服务。

控制台

  1. 在 Google Cloud Console 中打开网域映射页面:
    网域映射页面

    请注意,如果显示窗口太小,则不会显示“映射自定义网域”按钮,您必须点击页面右侧的三点状垂直椭圆图标。

  2. 在“网域映射”页面中,点击添加映射

  3. 从“添加映射”表单的下拉列表中,选择要将自定义网域映射到的服务:

    添加网域映射

  4. 输入域名。

  5. 点击继续

  6. 除非您从 Google 购买了网域,否则您需要先验证网域的所有权,然后才能使用该网域。如果您要映射 subdomain.example.com,则应验证对 example.com 的所有权。如需详细了解如何验证网域所有权,请参阅网站站长中心帮助

  7. 访问您的网域注册商网站,并使用上一步中显示的 DNS 记录更新您的 DNS 记录。您可以随时显示上步中所示的 DNS 记录,点击网域映射所对应“...”操作菜单中的 DNS 记录即可。

  8. 点击完成

命令行

  1. 除非您从 Google 购买了自定义网域,否则首次在 Google Cloud 项目中使用该网域时,您必须验证网域所有权。您可以使用以下命令来确定要使用的自定义网域是否已通过验证:

    gcloud domains list-user-verified

    如果您需要验证网域所有权,请打开网站站长中心验证页面:

    gcloud domains verify BASE-DOMAIN

    其中,BASE-DOMAIN 是您要验证的基本网域。例如,如果要映射 subdomain.example.com,您应验证 example.com 的所有权。

    在网站站长中心内,完成网域所有权验证。如需了解详情,请参阅网站站长中心帮助

  2. 将服务映射到自定义网域:

    gcloud beta run domain-mappings create --service SERVICE --domain DOMAIN
    • SERVICE 替换为您的服务名称。
    • DOMAIN 替换为您的自定义网域,例如 example.comsubdomain.example.com

在域名注册商处添加 DNS 记录

在 Cloud Run 中,将服务映射到自定义网域后,您需要在域名注册商处更新 DNS 记录。为方便起见,Cloud Run 会生成并显示您需要输入的 DNS 记录。您必须在域名注册商处添加这些记录以指向 Cloud Run 服务,映射才能生效。

如果您使用 Cloud DNS 作为 DNS 提供商,请参阅添加记录

  1. 按照以下方式检索网域映射的 DNS 记录信息:

    控制台

    1. 转到 Cloud Run 网域映射页面:
      网域映射页面

    2. 点击服务右侧的三点状垂直椭圆图标,然后点击 DNS 记录以显示所有 DNS 记录:

    选择 DNS 记录

    命令行

    gcloud beta run domain-mappings describe --domain [DOMAIN]

    [DOMAIN] 替换为您的自定义网域,例如 example.comsubdomain.example.com

    您需要在 resourceRecords 标题下返回的所有记录。

  2. 访问域名注册商并登录您的帐号,然后打开 DNS 配置页面。

  3. 找到网域配置页面的主机记录部分,然后添加您在将网域映射到 Cloud Run 服务时收到的各条资源记录。

  4. 在 DNS 提供商处将上述各 DNS 记录添加到帐号时,请按如下所述操作:

    • 选择上一步中 DNS 记录返回的类型:AAAAACNAME
    • 使用名称 www 映射到 www.example.com
    • 使用名称 @ 映射 example.com
  5. 保存您在网域帐号的 DNS 配置页面中所做的更改。在大多数情况下,这些更改只需几分钟即可生效,但在某些情况下,可能需要几个小时,具体取决于注册商以及网域的任何先前 DNS 记录的存留时间 (TTL)。您可以使用 dig 工具(如此在线 dig 版本)确认 DNS 记录已成功更新。

  6. 通过浏览您的新服务网址(例如 https://www.example.com)来测试是否成功。请注意,发放代管式 SSL 证书可能需要几分钟的时间。

将已通过验证的域名所有者添加到其他用户或服务帐号

当某位用户验证网域时,网域仅会针对该用户的帐号进行验证。这意味着,只有该用户才能添加使用这个网域的其他网域映射。因此,要使其他用户能够添加使用这个网域的映射,您必须将这些用户添加为已通过验证的所有者。

如果您需要将已通过验证的网域所有者添加到其他用户或服务帐号,则可以通过“网站站长中心”页面添加权限:

  1. 使用网络浏览器导航到以下地址:

    https://www.google.com/webmasters/verification/home

  2. 属性下,点击要为其添加用户或服务帐号的网域。

  3. 向下滚动到已验证所有者列表,点击添加所有者,然后输入 Google 帐号电子邮件地址或服务帐号 ID。

    如需查看您的服务帐号列表,请打开 Cloud Console 中的“服务帐号”页面:

    转到“服务帐号”页面

在 Cloud Run 控制台中向 Cloud Domains 注册网域

要在 Cloud Run 控制台中向 Cloud Domains 注册网域,请按以下步骤操作:

  1. 转到 Cloud Run
  2. 点击管理自定义网域
  3. 点击注册网域
  4. 按照注册网域中的说明完成注册流程。
  5. 将您的网域映射到 Cloud Run,并在域名注册商处添加 DNS 记录