Cloud Functions 概览

什么是 Google Cloud Functions?

Google Cloud Functions 是用于构建和连接云端服务的一种无服务器执行环境。借助 Cloud Functions,您可以编写单一用途的简单函数,并将这些函数与您的云基础架构和服务发出的事件进行关联。当所监控的事件发生时,您的函数就会被触发。您的代码将在完全托管的环境中执行。您无需预配任何基础架构,也不必费心管理任何服务器。

可在 Google Cloud Platform 上使用 JavaScript、Python 3、Go 或 Java 运行时编写 Cloud Functions 函数。您可以将自己的函数部署到任何标准的 Node.js (Node.js 10 或 12)、Python 3 (Python 3.7 或 3.8)、Go(Go 1.11 或 1.13)或 Java (Java 11) 环境下运行,轻而易举地实现可移植性以及本地测试。

连接和扩展云服务

Cloud Functions 提供了一个逻辑连接层,让您可以编写代码来连接和扩展云端服务。您可以侦听以下事件并做出响应:文件上传到 Cloud Storage、更改日志或 Pub/Sub 主题中收到消息。Cloud Functions 可增强现有云端服务,并使您能够凭借任意编程逻辑应对数量越来越多的使用场景。Cloud Functions 可以访问 Google 服务帐号凭据,因此能够无缝地通过大多数 Google Cloud 服务(包括 Cloud Vision)以及其他许多服务的身份验证。此外,许多 Google Cloud 客户端库都支持 Cloud Functions,从而使这些集成变得更加简单。

事件和触发器

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

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

无服务器

使用 Cloud Functions 无需管理服务器、配置软件、更新框架和修补操作系统。软件和基础架构完全由 Google 托管,您只需添加代码即可。 此外,系统会自动预配资源来响应事件。这意味着,对某个函数的调用可以从一天几次扩大到数百万次,而您无需执行任何操作。

使用场景

对于轻量级 ETL 等异步工作负载或触发应用构建等云端自动化功能,现在不再需要专属服务器和开发者对其进行绑定。您只需部署一个函数并将其绑定到所需的事件,就大功告成了。

Cloud Functions 具备精细、按需使用的特性,这也使其成为轻量级 API 和 webhook 的绝佳候选对象。另外,当您部署 HTTP 函数时,系统会自动预配 HTTP 端点。这意味着不需要象其它一些服务那样有复杂的配置。如需了解其他常见的 Cloud Functions 使用场景,请参阅下表:

使用场景 说明
数据处理/ETL 侦听以下 Cloud Storage 事件并做出响应:创建文件、更改文件或移除文件等。通过您的 Cloud Functions 函数处理图片、执行视频转码、验证和转换数据,以及调用互联网上的任何服务。
网络钩子 通过简单的 HTTP 触发器,响应源自 GitHub、Slack、Stripe 等第三方系统或可发送 HTTP 请求的任意位置的事件。
轻量级 API 从轻量级、松散耦合的小型逻辑开始,编写可迅速构建并可即时扩缩的应用。您的函数可以由事件驱动,也可以直接通过 HTTP/S 调用。
移动后端 使用 Google 面向应用开发者的移动平台 Firebase,在 Cloud Functions 中编写您的移动后端。侦听 Firebase Analytics、Firebase Realtime Database、Firebase Authentication 和 Firebase 存储中的事件并做出响应。
物联网 想象一下,成千上万的设备向 Pub/Sub 流式传输数据,并由此启动 Cloud Functions 函数来处理、转换和存储数据。Cloud Functions 能够通过一种完全不需要服务器的方式让您做到这一点。

后续步骤