云引擎快速入门
该文档帮助你快速的了解如何创建一个云引擎项目,本地开发调试,以及如何部署到云端。
创建项目
请根据《云引擎命令行工具使用指南》的《安装命令行工具》一节安装最新版的命令行工具,并确保你已经在本地机器上可以成功运行命令行工具:
tds help
如果一切正常,你应该看到命令行工具的帮助信息。
如果你尚未登录,请根据《云引擎命令行工具使用指南》的《登录》一节完成登录。
然后使用命令行工具创建项目:
tds init
根据提示输入相关信息,即可基于模板项目创建你的云引擎项目。
本地运行
首先在当前项目的目录下安装必要的依赖,执行如下命令行:
- JavaScript
- Python
- PHP
- Java
- C#
- Go
npm install
pip install -Ur requirements.txt
composer install
mvn package
// 需要安装 global.json 文件中指定的 .NET SDK 版本
go mod tidy && go mod vendor
然后启动应用:
tds up
访问站点
打开浏览器访问 http://localhost:3000 会显示如下内容:
- JavaScript
- Python
- PHP
- Java
- C#
- Go
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 列表」示例
LeanEngine
这是 LeanEngine 的示例应用
一个简单的动态路由示例
一个简单的「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
访问页面的路由定义如下:
- JavaScript
- Python
- PHP
- Java
- C#
- Go
// ./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())
}
// ...
新建一个 Todo
用浏览器打开 http://localhost:3000/todos ,然后在输入框输入 「点个外卖」并点击 「新增」,可以看到 Todo 列表新增加了一行。
打开控制台选择对应的应用,可以看到在 Todo 表中会有一个新的记录,它的 content
列的值就是刚才输入的「点个外卖」。
详细的实现细节请阅读源代码,里面有完整的代码以及注释帮助开发者理解如何在 LeanEngine 上编写符合自己项目需求的代码。
注:.NET 模板项目暂未实现 Todo 功能演示。
新建一个云函数
云引擎的云函数可以实现一些更适合在服务端实现的功能,例如需要灵活调整逻辑、避免消耗客户端计算资源、需要更高权限来执行等情况。
例如,编写一个新建 Todo 的云函数:
- JavaScript
- Python
- PHP
- Java
- C#
- Go
// 在项目的 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.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
云函数,请参考云函数指南。
部署到云端
使用免费版的应用可以直接部署到生产环境:
tds deploy
如果生产环境是标准实例,需要加上 --prod 1
参数,指定部署到生产环境:
tds deploy --prod 1
你可以在控制台绑定云引擎域名,绑定域名后,即可通过绑定域名访问你的应用。
例如,假定你在控制台绑定了 web.example.com
这个域名,即可通过 https://web.example.com
访问你的应用(生产环境)。