如需为 Cloud Run 服务设置新的公共端点,您可以使用 Cloud Load Balancing 在 Cloud Run 服务前端添加全球外部应用负载均衡器。借助全球外部应用负载均衡器,您可以控制自定义网域设置,但如果您还没有 TLS 证书或使用全球外部应用负载均衡器,则需要执行设置步骤。
使用本页面介绍的 Cloud Run 集成(预览版),您可以使用全球外部应用负载均衡器快速为您的 Cloud Run 服务设置新的自定义网域映射。如果您想要使用现有的全球外部应用负载均衡器,请参阅使用 Cloud Run 设置全球外部应用负载均衡器。
准备工作
- 确保您拥有要对映射到 Cloud Run 服务的网域进行 DNS 更改所需的权限。
- 确保您要集成的 Cloud Run 服务已部署完毕。
- 查看全球外部应用负载均衡器价格页面。您需要为集成中使用的各个资源付费。
所需的角色
如需使用 Cloud Run 集成,您或您的管理员必须向两个不同的主账号授予 IAM 角色。
点击查看您的 Google 账号需要的角色
如需获得使用 Cloud Run 集成所需的权限,请让您的管理员向您的 Google 账号授予项目的以下 IAM 角色:
- Cloud Run Developer (
roles/run.developer
) - Compute Viewer (
roles/compute.viewer
) - Serverless Integrations Developer (
roles/runapps.developer
) - Serverless Integrations Operator (
roles/runapps.operator
) - Service Account User (
roles/iam.serviceAccountUser
)
点击查看服务账号需要的角色
如需部署 Cloud Run 服务,您可以使用系统自动创建的 Compute Engine 默认服务账号,也可以指定用户管理的服务账号。服务账号必须具有以下角色:
- Cloud Run Developer (
roles/run.developer
) - Logs Bucket Writer (
roles/logging.bucketWriter
) - Service Account User (
roles/iam.serviceAccountUser
) - Storage Admin (
roles/storage.admin
) - Compute Load Balancer Admin (
roles/compute.loadBalancerAdmin
)
使用全球外部应用负载均衡器映射自定义网域
您可以使用控制台或命令行映射自定义网域。请注意,SSL 证书预配并且您的网域开始将 HTTPS 流量路由到您的 Cloud Run 服务最多可能需要 1 小时才能完成。
控制台
在 Google Cloud 控制台中,转到 Cloud Run 页面。
在服务列表中,点击要在此集成中使用的服务。
点击 Integrations(集成)标签。
点击添加集成。
点击自定义网域 - Google Cloud 负载均衡。
在网域字段中输入网域。
在路径字段中输入您使用的网域路径。
在服务字段中输入要映射到此自定义网域的服务的名称。
如果您要映射其他网域,请点击添加一项,然后根据需要重复上述步骤,将网域映射到服务。
如果系统提示您启用 API 列表,请点击启用并等待 API 启用。
在资源下,记下此集成后将创建的新资源。
点击提交,然后等待集成和资源创建完成:
- 完成后,系统会创建一个表,其中包含您需要配置的 DNS 记录:使用此表更新 DNS 提供商的 DNS 记录。
- 在 DNS 提供商处更新 DNS 后,系统最长可能需要 45 分钟来预配 SSL 证书并开始将流量路由到您的服务。
gcloud
更新到最新的 Google Cloud CLI:
gcloud components update
创建集成:
gcloud beta run integrations create \ --type=custom-domains \ --parameters='set-mapping=DOMAIN:SERVICE' \
您需要进行如下替换:
- 将 DOMAIN 替换为您的自定义网域,例如
example.com
或subdomain.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
- 将 DOMAIN 替换为您的自定义网域,例如
等待大约 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
来查看状态。使用显示的 IP_ADDRESS 值在您的 DNS 提供商处更新您的 DNS 记录。在 DNS 提供商处更新 DNS 后,系统最长可能需要 45 分钟来预配 SSL 证书并开始将流量路由到您的服务。
更新具有负载均衡器集成的自定义网域
更新集成会更新与该集成关联的所有 Google Cloud 资源。如需在 Cloud Run 服务中更新具有负载均衡器集成的自定义网域,请执行以下操作:
控制台
在 Google Cloud 控制台中,转到 Cloud Run 页面。
点击要更新的服务。
点击 Integrations(集成)标签。
找到具有负载均衡器集成的自定义网域,然后点击修改。
更新完字段后,点击更新。
gcloud
使用以下命令获取可用集成的列表:
gcloud beta run integrations list
运行用于更新集成的命令:
gcloud beta run integrations update INTEGRATION_NAME
您需要进行如下替换:
- 将 INTEGRATION_NAME 替换为具有负载均衡器集成的自定义网域的名称。
(可选)您可以使用以下标志选项:
选项 说明 --parameters
为服务设置的自定义网域。 --service-account
更新服务时指定的用户管理的服务账号电子邮件地址。此服务账号会覆盖部署时所使用的前一个服务账号。
查看具有负载均衡器集成的自定义网域
如需查看使用 Cloud Run 服务的负载均衡器集成的自定义网域的当前状态,请执行以下操作:
控制台
在 Google Cloud 控制台中,转到 Cloud Run 页面。
在服务列表中,点击要在此集成中使用的服务。
点击 Integrations(集成)标签。
找到使用您感兴趣的负载均衡器集成的自定义网域,然后点击查看详细信息。
gcloud
使用以下命令获取可用集成的列表:
gcloud beta run integrations list
使用返回列表中的名称显示它的详细信息:
gcloud beta run integrations describe INTEGRATION_NAME
将 INTEGRATION_NAME 替换为使用负载均衡器集成的自定义网域的名称。
删除具有负载均衡器集成的自定义网域
如果删除集成,则系统还会删除与该集成关联的所有 Google Cloud 资源,但不会删除 Cloud Run 服务。
如需从 Cloud Run 服务中删除使用负载均衡器集成的自定义网域,请执行以下操作:
控制台
在 Google Cloud 控制台中,转到 Cloud Run 页面。
点击要删除集成的服务。
点击 Integrations(集成)标签。
找到使用您感兴趣的负载均衡器集成的自定义网域,点击集成右侧的省略号图标,然后点击删除。
gcloud
使用以下命令获取可用集成的列表:
gcloud beta run integrations list
使用返回列表中的名称删除集成:
gcloud beta run integrations delete INTEGRATION_NAME
您需要进行如下替换:
- 将 INTEGRATION_NAME 替换为具有负载均衡器集成的自定义网域的名称。
(可选)您可以使用以下标志选项:
选项 说明 --service-account
用于执行删除操作的用户管理的服务账号电子邮件地址。
限制
Cloud Run 集成仅在某些区域受支持。如果您需要使用 Cloud Run 集成不支持的区域,请参阅使用 Cloud Run 设置全球外部应用负载均衡器。