使用 HTTPS 请求调用

您可以从任何能够发出 HTTPS 请求的服务发送 HTTPS 请求,以触发 Cloud Run 托管的服务。请注意,所有 Cloud Run 服务都有稳定的 HTTPS 网址。

部分用例包括:

  • 自定义 RESTful Web API
  • 专用微服务
  • 适用于您的 Web 应用的 HTTP 中间件或反向代理
  • 预封装的 Web 应用

创建公共服务

在 Cloud Run 上创建公共服务需要:

  • 通过公共互联网访问服务
  • 供公众使用的网址

如需将服务设为公开,请在部署部署之后的任何时间将您的服务设置为允许未经身份验证的(公共)访问。

您可以将首次部署服务时提供的稳定的自动分配网址用作 Cloud Run 上的公开网址。如需确定已部署服务的网址,请运行以下命令:

gcloud run services describe SERVICE --format 'value(status.url)'

Cloud Run 服务的网址格式为 https://[TAG---]SERVICE_IDENTIFIER.run.app,其中 TAG 是指您请求的修订版本的流量标记SERVICE_IDENTIFIER 是 Cloud Run 服务的稳定唯一标识符。请勿解析 SERVICE_IDENTIFIER,因为它没有固定格式,并且 SERVICE_IDENTIFIER 世代的逻辑随时可能更改。

您还可以使用自己的自定义网域来映射到该服务。 这会自动提供代管式 SSL 证书。

Cloud Run 会将所有 HTTP 请求重定向到 HTTPS,但会在 TLS 进入您的 Web 服务之前终止它。如果您的服务生成的 Web 资源引用了包含不安全网址 (http://) 的其他 Web 资源,则您的网页可能会出现混合的内容警告或错误。 对所有引用 Web URI 使用 https 协议或考虑 HTTP 请求中的代理指令,例如 X-Forwarded-Proto HTTP 标头。

HTTP 和 HTTP/2

默认情况下,当 HTTP/2 请求被发送到容器时,Cloud Run 会将这些请求降级为 HTTP/1。如果要明确将服务设置为使用 HTTP/2 端到端,请参阅使用 HTTP/2

创建专用服务

如需在 Cloud Run 上创建专用服务,您需要利用 IAM 调用方权限限制对该服务的访问权限。

您还可以使用应用级授权和身份验证机制(例如使用 Identity Platform)限制对服务的访问权限。

测试专用服务

测试专用服务的最简单方法是使用 Google Cloud CLI 中的 Cloud Run 代理。这会将专用服务代理到 http://localhost:8080(或使用 --port 指定的端口),从而提供活跃账号的令牌或您指定的其他令牌。这使您可以使用网络浏览器或 curl 等工具。这是在浏览器中对网站或 API 进行非公开测试的推荐方法。

您可以使用以下命令在本地代理服务:

gcloud run services proxy SERVICE --project PROJECT-ID

您还可以使用 curl 等工具在 Authorization 标头中传递身份验证令牌,从而在不使用代理的情况下测试专用服务:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL

专用服务到服务

Cloud Run 服务可以使用服务到服务身份验证来调用其他 Cloud Run 服务。

调用专用服务的示例代码

如需查看演示如何获取 ID 令牌并向专用服务发出 HTTP 请求的代码示例,请参阅对服务到服务进行身份验证主题。

使用中间件增强您的服务

HTTPS 代理可以分流 HTTP 服务中的常见功能,例如缓存、请求验证或授权。对于微服务,许多 HTTP 代理都是 API Gateway 解决方案或 Istio 等服务网格的一部分。

可用于增强 Cloud Run 服务的 Google Cloud 产品包括: