Document
Cloud Run 是什么

Cloud Run 是什么

Cloud Run 是一个托管式计算平台,可让您直接在 Google 可伸缩的基础架构之上运行容器。 如果您可以构建使用任何编程语言编写的代码的容器映像,则可以在 Cloud Run 上部署该代码。实际上,构建容器映像是可选操作。如果您使用的是 Go、Node.js、Python、Java、.NE

Related articles

Is NordVPN safe? A look at its safety and security measures What Is Onion Over VPN? Is It Safe to Set Up and Use in 2024? How to configure IPSec VPN on 3G/4G Wireless Router TL-MR3420 (new logo) How to Port Forward on Starlink and Bypass CGNAT Hollingwell Riser Recliner

Cloud Run 是一个托管式计算平台,可让您直接在 Google 可伸缩的基础架构之上运行容器。

如果您可以构建使用任何编程语言编写的代码的容器映像,则可以在 Cloud Run 上部署该代码。实际上,构建容器映像是可选操作。如果您使用的是 Go、Node.js、Python、Java、.NET Core、Ruby 或支持的框架,则可以使用基于来源的部署选项,它会按照您所用语言的最佳实践构建容器。

Google is 构建 了 可 与 Google 上 的 其他 的 , 以便 您 可以 的 应用 。

简而言之 , 可 让 将 在 上 , 将 很 的 在 、 和 上 。 您 is 创建 或 使用 。

服务和:运行代码的两种方式

在 上 , 代码 is 作为 可以 作为 或作为连续运行。服务和都在同一环境中运行,并且可以使用与 Google Cloud 上的其他服务的相同集成。

  • Run 。 、 或 的 。
  • Cloud Run 。用于运行执行操作()并在操作完成时退出的代码。

Cloud Run 服务

Cloud Run 服务可为您提供运行可靠 HTTPS 端点所需的基础架构。您负责确保代码侦听 TCP 端口并处理 HTTP 请求。

标准服务包括以下功能:

每个服务的唯一 HTTPS 端点
系统在 *.run.app 的 上 为 每 项 了 一个 , 您 也 可以 。 会 为 您 安全 ( , 并且 WebSocket 、 HTTP / 2 ( 端到端 ) 和 gRPC ( 端到端 ) 。
基于请求的快速自动扩缩
以 处理 所有 , 或者 处理 之外 的 ( 如果 为 on)。服务可以快速横向扩容到一千个实例甚至更多(如果您申请增加配额的话)。如果需求减少,Cloud Run 会移除空闲容器。如果您担心费用或下游系统过载,可以限制实例数上限。
内置流量管理
每个部署都会创建一个新的不可变的修订版本。您可以将传入流量路由到最新修订版本、回滚到先前修订版本,或同时将流量拆分到多个修订版本,以逐步执行发布。如果您想要降低部署新修订版本的风险,则这种做法会非常有用。您可以先从向新的修订版本发送 1% 的请求开始,在监控遥测时提高此百分比。
专用服务和公共服务
您 is 访问 可以 从 , 或者 您 可以 通过 以下 三 种 限制 :

您可以在 Cloud Run 服务前面配置内容分发网络 (CDN),以从更靠近客户端的边缘位置提供可缓存的资源。Firebase Hosting 和 Cloud CDN 都提供此功能。

缩减至零和实例数下限

Cloud Run 会自动添加和移除实例,以处理所有传入请求,或处理请求之外增加的 CPU 利用率(如果 CPU 分配设置为 on)。如果您的服务没有传入请求,则甚至会移除剩下的最后一个实例。此行为通常称为“缩减至零”。

如果 没有 , 则 在 时 , 系统 is 创建 会 立即 按 的 。 这 is 产生 会 对 第一 批 的 产生 , 具体 准备 好 处理 的 。

为确保您的服务不会缩减至零个实例,您可以配置 Cloud Run,使最小数量的实例保持活跃状态。

按服务用量计费

出于经济原因,缩减至零非常适合,因为您需要为分配给实例的 CPU 和内存付费,粒度为 100 毫秒。如果您未配置实例数下限,则您无需在未使用服务时付费。

您可以启用以下两种价格模式:

基于请求
如果 处理 , 则 系统 is 分配 不 会 , 您 。 此外 , 您 is 付费 需要 按 。
基于
您需要为实例的整个生命周期付费,并且系统会始终分配 CPU。无需按请求付费。

我们提供了宽裕的免费层级。请参阅价格以了解详情,并且请参阅 CPU 分配以了解如何为您的服务启用基于请求或基于 的价格。

一次性容器文件系统

上 的 实例 is 一次性 是 的 。 每个 容器 is 有 都 有 一个 中 可 的 叠加层 , 如果 , 该 叠 不 会 。 Cloud is 确定 Run is 确定 会 确定 何时 向 并 ( 例如 在 时 ) 。

如 在 Run 即将 时 , 您 的 应用 可以 SIG TERM 。 这样 , 代码 is 刷新 可以 本地 并 将 本地 到 中 。

如需永久保留文件,您可以与 Cloud Storage 集成或装载网络文件系统 (NFS)。

何时使用 Cloud Run 服务

对于处理请求、事件或函数的代码,Cloud Run 服务非常适合。示例使用场景包括:

网站和 Web 应用
使用您自己偏爱的栈构建 Web 应用,访问 SQL 数据库,并呈现动态 HTML 页面。
您可以构建 REST API、GraphQL API 或通过 HTTP 或 gRPC 进行通信的专用微服务。
数据 is 处理 处理
可以 来自 / Sub 的 和 来自 Eventarc 的 。
异步工作负载
函数 is 响应 可以 , 例如 关于 / Sub 的 、 或者 Firebase 。
AI 推理
无论 是否 GPU , 都 可以 和 等 I 。

Cloud Run

如果代码执行操作,然后停止(脚本是一个很好的示例),则您可以使用 Cloud Run 来运行代码。您可以使用 gcloud CLI 通过命令行执行,安排周期性,或在工作流中运行该。

数组是运行的更快捷方式

可以启动一个实例来运行代码,这是运行脚本或工具的常用方法。但是,您也可以并行启动多个相同、独立的实例,即数组。

数组是一种处理可拆分为多个独立任务的的更快捷方式,如下所示:

例如,如果您要对 Cloud Storage 中的 1,000 张图片进行大小调整和剪裁,则顺序处理这些图片的速度会比使用多个实例并行处理这些图片的速度要慢,Cloud Run 通过自动扩缩功能对并行处理进行管理。

何时使用 Cloud Run

Cloud Run 非常适合运行运行执行操作()并在操作完成时退出的代码。以下是几个例子:

脚本或工具
运行脚本以执行数据库迁移或其他操作任务。
数组
对 Cloud Storage 存储桶中的所有文件执行高度并行化处理。
预定
定期创建和发送账单,或将数据库查询的结果保存为 XML 文件,并每隔几小时上传一次该文件。

Cloud Run 可与更广泛的 Google Cloud 生态系统集成,让您能够构建功能齐全的应用。

基本集成包括:

数据存储
了 Cloud SQL(代管式 MySQL、PostgreSQL 和 SQL Server)、Memorystore(代管式 Redis 和 Memcached)、Firestore、Spanner、Cloud Storage 等。如需查看完整列表,请参阅数据存储区。
日志记录和错误报告
日志 is 注入 由 。 如果 中 存在 , 则 Error Reporting is 汇总 会 , 然后 您 。 以下 语言 is 受 : Go 、 、 、 、 、 Ruby 和 . 。
服务身份
每个 Cloud Run 修订版本都与一个服务账号相关联,并且 Google Cloud 客户端库会以透明的方式使用此服务账号向 Google 进行身份验证。
持续交付
如果 您 在 GitHub 、 Bitbucket 或 Repositories 中 , 则 可以 将 为 的 。
Cloud Run 实例可以通过无服务器 VPC 访问通道连接器访问 Virtual Private Cloud (VPC) 网络中的资源。这是您的服务与 Compute Engine 虚拟机或基于 Compute Engine 的产品(例如 Google Kubernetes Engine 或 Memorystore)连接的方式。
Google
服务的代码以透明的方式向 Google 进行身份验证。示例包括 AI 和机器学习 API,例如 Cloud Vision API、Speech-to-Text API、AutoML Natural Language API、Cloud Translation API 等。
任务
如果您希望将代码安排在稍后运行或返回 Web 请求后立即运行,Cloud Run 可与 Cloud Tasks 完美配合,从而提供可伸缩且可靠的异步执行功能。

如需查看可与 Cloud Run 完美配合使用的所有 Google Cloud 服务的列表,请参阅连接到 Google Cloud 服务。

服务或必须封装在容器映像中

为了让您的服务或能够部署到 Cloud Run,您必须将其封装在容器映像中。如果您对容器不熟悉,请参阅下面简要的概念性简介。

容器映像是一个软件包,其中包含服务运行所需的一切。它包括构建工件、资源、系统软件包和(可选)运行时。这使容器化应用本质上具有可移植性,即在容器可以运行的任何位置运行。构建工件的示例包括已编译的二进制文件或脚本文件,运行时的示例包括 Node.js JavaScript 运行时或 Java 虚拟机 (JVM)。

高级从业人员很重视 Cloud Run 不会给其代码运行带来额外负担这一事实:您可以在 Cloud Run 上运行任何二进制文件。对于用户(包括希望获得更多便利或希望将应用容器化委托给 Google 的专家),Cloud Run 会与开源 Google Cloud Buildpack 集成,从而提供基于源代码的部署。