该文档帮助你快速的了解如何创建一个云引擎项目,本地开发调试,以及如何部署到云端。
请根据《命令行工具使用指南》的《安装命令行工具》一节安装最新版的命令行工具,并确保你已经在本地机器上可以成功运行命令行工具:
lean help
如果一切正常,你应该看到命令行工具的帮助信息。
如果你是第一次使用云引擎,请根据《控制台使用指南》创建账号,然后在云服务控制台创建一个新应用。
使用命令行工具创建项目:
lean init
根据提示输入相关信息,即可基于模板项目创建你的云引擎项目。
首先在当前项目的目录下安装必要的依赖,执行如下命令行:
npm install
pip install -Ur requirements.txt
composer install
mvn package
// 需要安装 global.json 文件中指定的 .Net SDK 版本
go mod tidy && go mod vendor
然后启动应用:
lean up
打开浏览器访问 http://localhost:3000 会显示如下内容:
LeanEngine 这是 LeanEngine 的示例应用 当前时间:Mon Feb 01 2016 18:23:36 GMT+0800 (CST) 一个简单的「TODO 列表」示例
LeanEngine 这是 LeanEngine 的示例应用 一个简单的动态路由示例 一个简单的「TODO 列表」示例
LeanEngine 这是 LeanEngine 的示例应用 当前时间:2016-07-25T14:55:17+08:00 一个简单的「TODO 列表」示例
Welcome Learn about building Web apps with ASP.NET Core.
LeanEngine This is a LeanEngine demo application. Current date: 2021-02-28 23:54:47.821183329 +0800 CST m=+1.093390203 A simple todo demo
访问页面的路由定义如下:
// ./app.js // ... app.get('/', function(req, res) { res.render('index', { currentTime: new Date() }); }); // ...
# ./app.py # ... @app.route('/') def index(): return render_template('index.html') # ...
// ./src/app.php // ... $app->get('/', function (Request $request, Response $response) { return $this->view->render($response, "index.phtml", array( "currentTime" => new \DateTime(), )); }); // ...
// ./src/main/webapp/WEB-INF/web.xml // ... <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> // ...
// ./web/Startup.cs // ... app.UseEndpoints(endpoints => { endpoints.MapControllerRoute( name: "default", pattern: "{controller=Home}/{action=Index}/{id?}"); }) // ...
// ./main.go // ... e.GET("/", routes.Index) // ... // ./routes/index.go // ... func Index(c echo.Context) error { return c.Render(http.StatusOK, "index", time.Now().String()) } // ...
用浏览器打开 http://localhost:3000/todos ,然后在输入框输入 「点个外卖」并点击 「新增」,可以看到 Todo 列表新增加了一行。
打开控制台选择对应的应用,可以看到在 Todo 表中会有一个新的记录,它的 content 列的值就是刚才输入的「点个外卖」。
content
详细的实现细节请阅读源代码,里面有完整的代码以及注释帮助开发者理解如何在 LeanEngine 上编写符合自己项目需求的代码。
注:.Net 模板项目暂未实现 Todo 功能演示。
云引擎的云函数可以实现一些更适合在服务端实现的功能,例如需要灵活调整逻辑、避免消耗客户端计算资源、需要更高权限来执行等情况。
例如,编写一个新建 Todo 的云函数:
// 在项目的 cloud.js 文件中新增一个云函数定义 AV.Cloud.define('createTodo', async (request) => { const Todo = AV.Object.extend('Todo'); const todo = new Todo(); todo.set('content', request.params.content); return todo.save(); });
# 在项目的 cloud.py 文件中新增一个云函数定义 @engine.define('createTodo') def create_todo(content, **params): import leancloud todo = leancloud.Object.extend('Todo')() todo.set('content', content) return todo.save()
// 在项目的 src/cloud.php 文件中新增一个云函数定义 use \LeanCloud\LeanObject; Cloud::define("createTodo", function($params, $user) { $todo = new LeanObject("Todo"); $todo->set("content", $params["content"]); $todo->save(); });
// 在项目的 src/main/java/cn/leancloud/demo/todo/Cloud.java 文件开头导入云函数定义中用到的类 import cn.leancloud.AVException; import cn.leancloud.AVObject; // 在上述文件的 Cloud 类中新增一个方法 @EngineFunction("createTodo") public static void createTodo(@EngineFunctionParam("content") String content) throws AVException { AVObject todo = new AVObject("Todo"); todo.put("content", content); todo.save(); }
// 在项目的 web/App.cs 文件开头导入云函数定义中用到的类 using System.Threading.Tasks; using LeanCloud.Storage; // 在上述文件的 App 类中新增一个方法 [LCEngineFunction("createTodo")] public static async Task createTodo([LCEngineFunctionParam("content")] string content) { LCObject todo = new LCObject("Todo"); todo["content"] = content; await todo.Save(); }
// 在云函数文件中导入 leancloud 包 // 建议在项目的 functions 文件夹中定义云函数 import "github.com/leancloud/go-sdk/leancloud" type Todo struct { leancloud.Object Content string `json:"content"` } func init() { leancloud.Engine.Define("createdTodo", createTodo) // 注册云函数 } func createTodo(req *leancloud.FunctionRequest) (interface{}, error) { todo := &Todo{ Content: req.Params["content"].(string), } if _, err := client.Class("Todo").Create(todo); err != nil { return nil, err } return nil, nil }
还有一类特殊的云函数是由云端系统在特定事件发生时自动触发,这类云函数称为 Hook 函数。 想要了解 Hook 函数的详情以及如何调用我们上面定义的 createTodo 云函数,请参考《云函数开发指南》。
createTodo
使用免费版的应用可以直接部署到生产环境:
lean deploy
如果生产环境是标准实例,需要加上 --prod 1 参数,指定部署到生产环境:
--prod 1
lean deploy --prod 1
你可以在控制台绑定云引擎域名,绑定域名后,即可通过绑定域名访问你的应用。 例如,假定你在控制台绑定了 web.example.com 这个域名,即可通过 https://web.example.com 访问你的应用(生产环境)。
web.example.com
https://web.example.com
云引擎快速入门
该文档帮助你快速的了解如何创建一个云引擎项目,本地开发调试,以及如何部署到云端。
创建项目
请根据《命令行工具使用指南》的《安装命令行工具》一节安装最新版的命令行工具,并确保你已经在本地机器上可以成功运行命令行工具:
如果一切正常,你应该看到命令行工具的帮助信息。
如果你是第一次使用云引擎,请根据《控制台使用指南》创建账号,然后在云服务控制台创建一个新应用。
使用命令行工具创建项目:
根据提示输入相关信息,即可基于模板项目创建你的云引擎项目。
本地运行
首先在当前项目的目录下安装必要的依赖,执行如下命令行:
然后启动应用:
访问站点
打开浏览器访问 http://localhost:3000 会显示如下内容:
访问页面的路由定义如下:
新建一个 Todo
用浏览器打开 http://localhost:3000/todos ,然后在输入框输入 「点个外卖」并点击 「新增」,可以看到 Todo 列表新增加了一行。
打开控制台选择对应的应用,可以看到在 Todo 表中会有一个新的记录,它的
content
列的值就是刚才输入的「点个外卖」。详细的实现细节请阅读源代码,里面有完整的代码以及注释帮助开发者理解如何在 LeanEngine 上编写符合自己项目需求的代码。
注:.Net 模板项目暂未实现 Todo 功能演示。
新建一个云函数
云引擎的云函数可以实现一些更适合在服务端实现的功能,例如需要灵活调整逻辑、避免消耗客户端计算资源、需要更高权限来执行等情况。
例如,编写一个新建 Todo 的云函数:
还有一类特殊的云函数是由云端系统在特定事件发生时自动触发,这类云函数称为 Hook 函数。 想要了解 Hook 函数的详情以及如何调用我们上面定义的
createTodo
云函数,请参考《云函数开发指南》。部署到云端
使用免费版的应用可以直接部署到生产环境:
如果生产环境是标准实例,需要加上
--prod 1
参数,指定部署到生产环境:你可以在控制台绑定云引擎域名,绑定域名后,即可通过绑定域名访问你的应用。 例如,假定你在控制台绑定了
web.example.com
这个域名,即可通过https://web.example.com
访问你的应用(生产环境)。