资源模型

下图显示了服务的 Cloud Run 资源模型:

Cloud Run 服务和修订版本

该图显示了一个包含三项 Cloud Run 服务(Service AService BService C)的 Google Cloud 项目,每项服务都有多个修订版本。

在该图中,Service A 正在接收多个请求,因此需要启动和运行多个实例,并且每个实例运行一个容器。请注意,Service B 当前尚未接收请求,因此尚未启动实例。Service C 在每个修订版本中的每个实例运行多个容器:请注意,只有入站流量容器会收到请求。每个包含多个容器的实例都作为独立单元进行扩缩。

Cloud Run 服务

Cloud Run 的主要资源是服务。 每项服务都位于特定的 Google Cloud 区域。为了实现冗余和故障切换,服务会跨其所在区域中的多个可用区自动复制。给定 Google Cloud 项目可以在不同区域运行多项服务。

每项服务都会公开唯一端点,并根据需要处理的传入请求数量自动扩缩底层基础架构。 您可以从容器、代码库或源代码部署服务。

Cloud Run 修订版本

向服务执行的每次部署都会创建一个修订版本。修订版本包含一个或多个容器映像以及环境设置(如环境变量、内存限制或并发值)。

修订版本是不可变的,也就是说,修订版本一旦创建便无法修改。例如,将容器映像部署到新的 Cloud Run 服务时,第一个修订版本即会创建。如果接着将另一个容器映像部署到此同一服务,则第二个修订版本即会创建。如果随后设置了环境变量,则第三个修订版本即会创建,依此类推。

系统会尽快将请求自动路由到运行状况良好的最新服务修订版本。

Cloud Run 函数

函数是一种服务,包含用于构建和连接云服务的简短代码段。

借助 Cloud Run,您可以编写单一用途的函数,并将您的云基础架构和服务发出的事件关联到这些函数。当所监控的事件发生时,就会触发您的函数。您的代码将在全托管式环境中执行。由于函数作为 Cloud Run 服务运行,因此您无需预配任何基础架构,也不必费心管理任何服务器。

您可以使用许多受支持的编程语言编写 Cloud Run 函数。您可以在任何适用于某种受支持语言的标准运行时环境中运行自己的函数,这样便于更轻松地将函数移植到本地并在本地对其进行测试。

Cloud Run 函数事件和触发器

云事件是指在云环境中发生的事件,例如,数据库中发生数据变更、存储系统中添加了文件或正在创建新虚拟机实例。

无论您是否选择响应事件,这些事件都会发生。您可以使用触发器创建对事件的响应。触发器是一种声明,用于表明您对某个事件或一系列事件感兴趣。将函数与触发器绑定后,您将能够捕获事件并对其执行操作。如需详细了解如何创建触发器以及如何将其与函数相关联,请参阅使用 HTTPS 调用通过事件触发

Cloud Run 作业

每个作业都位于特定的 Google Cloud 区域中,并执行一个或多个容器以完成操作。一个作业由一个或多个独立的任务组成,这些任务在给定的作业执行中并行执行。每项任务都运行一个容器,可能会重试。

Cloud Run 作业执行

执行作业时,系统会创建一个作业执行,以启动所有作业任务。作业执行中的所有任务都必须成功完成,执行作业才视为成功。您可以设置任务的超时,并指定在任务失败的情况下的重试次数。如果任何任务的重试次数超出上限,则该任务会被标记为失败,并且作业会被标记为失败。默认情况下,可以并行执行的任务数最多为 100,但如果您的任何支持性资源需要并行执行任务,您可以指定较低的上限。

Cloud Run 实例

接收请求的每个修订版本都会根据处理所有这些请求所需的实例数量而自动扩缩。请注意,实例中的入站容器可以同时接收许多请求。利用并发设置,您可以设置可并行发送到给定实例的请求数上限。