使用 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)'

您还可以使用自己的自定义网域来映射到该服务。 这会自动提供代管式 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 管理访问权限中所述,使用 IAM 限制对服务的访问权限。

开发者测试专用服务的最简单方法是使用 curl 之类的工具,并在 Authorization 标头中传递一个身份验证令牌:

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

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

除了上述限制访问权限的方法之外,您还可以使用应用级授权和身份验证机制(例如使用 Identity Platform)限制对服务的访问。

调用 HTTP 请求的示例代码

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

使用中间件增强您的服务

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

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