Cloud Functions for Firebase

Cloud Functions for Firebase 是一种无服务器框架,您可以利用它自动运行后端代码来响应后台事件、HTTPS 请求、Admin SDKCloud Scheduler 作业触发的事件。您的 JavaScript、TypeScript 或 Python 代码存储在 Google Cloud 基础架构中,并在托管式环境中运行。您无需管理和扩缩自己的服务器。

已经在 Google Cloud 中使用 Cloud Functions?详细了解如何搭配 Firebase 使用 Cloud Functions。

使用入门 使用场景

主要功能

集成 Firebase 功能并将 Firebase 与 Google Cloud 相关联

您编写的函数可以响应各种 Firebase 和 Google Cloud 功能(从 Firebase Authentication 触发器Cloud Storage 触发器)生成的事件。

Admin SDK 与 Cloud Functions 配合使用以与各种 Firebase 功能进行集成,并通过编写自己的 Webhook 来与第三方服务集成。 Cloud Functions 能最大限度减少样板代码,让您更轻松地在函数中使用 Firebase 和 Google Cloud
零维护 只需在命令行中输入一个命令即可将您的 JavaScript、TypeScript 或 Python 代码部署到我们的服务器。此后,Firebase 会根据您用户的使用模式自动纵向扩容计算资源。您永远不必担心以下这些问题:凭据、服务器配置、预配新服务器或停用旧服务器。
确保逻辑的私密性和安全性 在很多情况下,开发者喜欢在服务器上控制应用逻辑,以避免客户端出现篡改的情况。此外,有时候您可能并不希望代码被逆向工程。 Cloud Functions 与客户端完全隔离,因此您可以确信它是私密且安全的,且始终按照您的要求执行操作。

工作原理

在您编写并部署函数后,Google 的服务器会立即开始管理函数。您可以使用 HTTP 请求、Admin SDK 或预定作业直接触发函数,或者对于后台函数,Google 的服务器会监听事件并在函数被触发时运行函数。

Google 会随着负载的增加或减少而做出响应,迅速调节运行函数所需的虚拟服务器实例的数量。每个函数都拥有自己的配置,会在自己的环境中单独运行。

后台函数的生命周期

  1. 您需要为新函数编写代码,选择事件提供程序(如 Cloud Firestore),并定义在哪些条件下执行函数。
  2. 当您部署函数时:
    1. Firebase CLI 会创建函数代码的 .zip 归档文件,然后将其上传到 Cloud Storage 存储桶(以 gcf-sources 为前缀),接着 Cloud Functions 会在您的项目中创建一个 Artifact Registry 代码库(名为 gcf-artifacts)。
    2. Cloud Build 会检索函数代码并构建函数源。您可以在 Google Cloud 控制台中查看 Cloud Build 日志。
    3. 所构建函数代码的容器映像会上传到项目中的私有 Artifact Registry 代码库(名为 gcf-artifacts),新的函数将会发布。
  3. 当事件提供程序生成与函数条件匹配的事件时,系统就会调用代码。
  4. 如果函数忙于处理许多事件,Google 会创建更多实例以更快地处理工作。如果函数空闲,则实例会被清除。
  5. 当您通过部署更新后的代码来更新函数时,较旧版本的实例以及 Artifact Registry 中的构建工件都会被清除并替换为新实例。
  6. 当您删除该函数时,所有实例和 zip 归档文件以及 Artifact Registry 中的相关构建工件都会被清除。函数与事件提供程序之间的关联也将移除。

除了使用后台函数侦听事件之外,您还可以使用 HTTP 请求或客户端调用直接调用函数。 您还可以通过 Admin SDK 按固定时间表触发函数或将任务函数加入队列

实现流程

设置 Cloud Functions 安装 Firebase CLI 并在 Firebase 项目中初始化 Cloud Functions
编写函数 编写 JavaScript 代码、TypeScript 代码或 Python 代码以处理来自 Firebase 服务、Google Cloud 服务或其他事件提供程序的事件。
测试函数 使用本地模拟器测试您的函数。
部署和监控 使用 Firebase CLI 为项目启用结算功能并部署您的函数。您可以使用 Google Cloud 控制台查看和搜索日志。

后续步骤