跳到主要内容

快速开始部署云函数和 Hook

云函数是云引擎提供的一种经过高度封装的函数计算功能,在我们的各个客户端 SDK 中也有对应的支持,可以自动地序列化 数据存储 服务中的各种数据类型。

适合使用云函数和 Hook 的场景包括:

  • 将跨平台应用(同时有 Android、iOS、浏览器客户端)中复杂的计算逻辑集中到一处,而不必每个客户端单独实现一遍。
  • 需要在服务器端对一些逻辑进行灵活调整,而不必更新客户端。
  • 需要越过 ACL 或表权限的限制,对数据进行查询或修改。
  • 需要使用 Hook 在数据存储中的对象被创建、更新、删除,或用户登录、认证时,触发自定义的逻辑、进行额外的权限检查。
  • 需要运行定时任务,如每小时关闭未支付的订单、每天凌晨运行过期数据的清理任务等。

你可以使用云引擎支持的所有语言(运行环境)来编写云函数,包括 Node.js、Python、Java、PHP、.NET 和 Go。其中 Node.js 支持在控制台上在线编辑,其他语言需基于我们的示例项目部署到云引擎。

信息

如果希望使用 Node.js 编写简单的云函数或 Hook,也可以尝试 云函数和 Hook 开发指南 § 在线编写云函数

创建项目

请先根据 命令行工具使用指南 § 安装 安装最新版本的命令行工具,然后根据 命令行工具使用指南 § 登录账号 登录到你的账号。

如果你还没有在控制台创建过应用,请先在控制台创建应用,然后使用 tds new 创建项目:

$ tds new my-functions
[?] Please select an app template:
1) Node.js - Express
2) Node.js - Koa
3) Python - Flask
4) Python - Django
5) Java - Servlet
6) Java - Spring Boot
7) PHP - Slim
8) .NET Core
9) Go - Echo
10) React Web App (via create-react-app)
11) Vue Web App (via @vue/cli)
=> 1
[?] Please select an app:
1) my-functions
=> 1
[INFO] Downloading templates 7.71 KiB / 7.71 KiB [==================] 100.00% 0s
[INFO] Creating project...
[INFO] Created Node.js - Express project in `my-functions`
[INFO] Lean how to use Express at https://expressjs.com

tds new 会使用你提供的名字创建一个目录,我们 cd my-functions 然后安装项目依赖:

npm install

编写云函数

在示例项目中可以看到一个云函数的例子:

cloud.js
AV.Cloud.define("hello", function (request) {
return "Hello world!";
});

Hook 的编写和云函数很类似,在后文中我们会详细介绍云函数和 Hook 的详细用法。

本地运行和调试

可以使用 tds up 进行本地运行和调试,命令行工具会自动注入关联应用的环境变量,让云函数可以访问到线上数据存储中的数据。

$ tds up
[INFO] The project is running at: http://localhost:3000
[INFO] Cloud function debug console (if available) is accessible at: http://localhost:3001

tds up 同时默认在 3001 端口启动了一个用于调试云函数的控制台(http://localhost:3001),开发者可以通过这个控制台来调试云函数和 Hook,模拟特定的输入。

云函数调试控制台

部署到云引擎

直接部署到生产环境:

tds deploy --prod

更多

接下来可以查看 云函数和 Hook 开发指南 来了解云函数开发的详细信息、查看 云引擎 SDK 使用指南 了解 SDK 的进阶用法、查看 云引擎平台功能 来了解云引擎提供的更多功能,或查看专门的页面来了解具体运行环境的详情: