Cloud Run functions 概览
什么是 Cloud Run 函数?
Cloud Functions 是一种用于构建和连接云服务的无服务器执行环境。借助 Cloud Run functions,您可以编写单一用途的函数,这些函数会关联到从云基础设施和服务发出的事件。当所监控的事件发生时,您的函数就会被触发。您的代码将在 Cloud Run 的全代管式环境中执行。您无需预配任何基础架构,也不必费心管理任何服务器。
您可以使用许多受支持的编程语言编写 Cloud Run functions 函数。您可以在任何适用于某种受支持语言的标准运行时环境中运行自己的函数,这样便于轻松进行移植和本地测试。
连接和扩展云服务
Cloud Run 函数提供了一个逻辑连接层,让您可以编写代码来连接和扩展云端服务。您可以侦听以下事件并做出响应:文件上传到 Cloud Storage、更改日志或 Pub/Sub 主题中收到消息。Cloud Run functions 可增强现有云服务,让您能够通过任意编程逻辑来满足越来越多应用场景的需要。Cloud Run functions 有权访问 Google 服务账号凭据,因此能够无缝地通过大多数 Google Cloud 服务(包括 Cloud Vision)以及其他许多服务的身份验证。此外,许多 Google Cloud 客户端库都支持 Cloud Run functions,从而进一步简化这些集成。
事件和触发器
云事件是指在云环境中发生的事件,例如,数据库中发生数据变更、存储系统中添加了文件或正在创建新虚拟机实例。
无论您是否选择响应事件,这些事件都会发生。您可以使用触发器创建对事件的响应。触发器是一种声明,用于表明您对某个事件或一系列事件感兴趣。将函数与触发器绑定后,您将能够捕获事件并对其执行操作。如需详细了解如何创建触发器并将其与函数相关联,请参阅 Cloud Run functions 触发器。
无服务器
使用 Cloud Run functions 后,您无需再管理服务器、配置软件、更新框架和修补操作系统。软件和基础架构完全由 Cloud Run 托管,您只需添加代码即可。此外,系统会自动预配资源来响应事件。这意味着,对某个函数的调用可以从一天几次扩大到数百万次,而您无需执行任何操作。
可配置
函数会内置到容器中,并在 Cloud Run 上作为服务进行部署。这样一来,您就可以完全访问和控制函数的行为。如需了解用于配置服务的选项(例如内存限制、环境变量等),请参阅 Cloud Run 文档。
- 对函数进行多事件触发器管理
- 高性能直接 VPC 出站流量
- 能够装载 Cloud Storage 卷
- Google 管理的语言运行时,基础映像会自动更新安全补丁
- 流量分配和版本控制
- 通过边车容器支持受管 Prometheus 和 Open Telemetry
使用场景
异步工作负载(例如轻量级 ETL)或云端自动化功能(例如触发应用构建)现在不再需要专用服务器或开发者来手动管理它们。您部署一个函数并将其绑定到所需的事件,就大功告成了。
Cloud Run functions 具备精细、按需的特性,这也使其成为轻量级 API 和 webhook 的绝佳候选对象。另外,当您部署 HTTP 函数时,系统会自动预配 HTTP 端点。这意味着不需要象其它一些服务那样有复杂的配置。如需了解其他常见的 Cloud Run functions 应用场景,请参阅下表:
使用场景 | 说明 |
---|---|
数据处理/ETL | 监听诸如创建文件、更改文件或移除文件等 Cloud Storage 事件并做出响应。通过 Cloud Run functions 函数处理图像、执行视频转码、验证和转换数据,以及调用互联网上的任何服务。 |
Webhook | 使用 HTTP 触发器,对源自 GitHub、Slack、Stripe 等第三方系统或可发送 HTTP 请求的任意位置的事件进行响应。 |
轻量级 API | 从轻量级、松散耦合的小型逻辑开始,编写可迅速构建并可即时扩缩的应用。您的函数可以由事件驱动,也可以直接通过 HTTP/S 调用。 |
移动后端 | 使用 Google 面向应用开发者的移动平台 Firebase,在 Cloud Run 函数中编写您的移动后端。侦听 Firebase Analytics、Firebase Realtime Database、Firebase Authentication 和 Firebase 存储中的事件并做出响应。 |
IoT | 想象一下,成千上万的设备向 Pub/Sub 流式传输数据,并由此启动 Cloud Run functions 来处理、转换和存储数据。Cloud Run functions 可让您通过一种完全不需要服务器的方式做到这一点。 |