在云代码 2.0 中,大家可以通过使用自定义的第三方包,灵活地进行开发。但由于架构在沙箱环境中,云代码 2.0 在功能上会受到局限。为此,我们对其进行重构和改进,现在正式推出云代码 3.0。同时,我们将「云代码」正式更名为「云引擎」,即 LeanEngine,旨在打造一个更加通用的多运行时平台。

最新的云引擎,具备两个明显的特征:「去沙箱」和「支持 Python 运行时」。

去沙箱

没有沙箱环境,使得在云引擎上可以运行标准的 Node.js 项目,这意味着:


  • 你可以使用自己喜欢的 web 框架(比如 Express 4.x)。

  • 项目开发调试更加灵活,可以不依赖 命令行工具25(不过该工具绝对是利器,谁用谁知道!)

  • leanengine-node-sdk19 引入项目即可定义 Cloud 函数,拥有与云代码一样的能力。

  • 没有沙箱,操作更透明,功能不受限。

大家可以通过这两个示例项目进行体验:

支持 Python 运行时

云引擎增加对 Python 运行时的支持,终于让大家可以摆脱「回调噩梦」了。配合我们的 Python-SDK3,你可以在云引擎上运行自己的 Python Web 服务:


  • python-getting-started13:一个非常简单的 Python Web 的项目,可以作为大家的项目模板。效果体验:http://python.avosapps.com/

另外,我们更新了云引擎的文档内容和结构,大家可从如下地址看到最新的文档:

最后,再分享下我们下一步的规划:


  • 对 WebSocket 的支持:这样就可以在云引擎中使用 实时通信1 组件,或者应用其他场景(比如游戏)。不过因为该功能设计点较多,请大家耐心等待。

  • 云引擎多节点负载均衡:有些规模较大的应用需要更多的运算资源,所以我们计划为云引擎开放多节点负载均衡的功能。

大家快快去尝鲜,与我们分享你的体验和感受!

2 人赞了这个帖子.

本主题已置顶,它将始终显示在它所属分类的顶部。可由职员对所有人解除置顶,或者由用户自己取消置顶。

avoscloud add xxx 51pxxxxxxxxxxxxxxxxxxxxxx
[ERROR] 当前目录没有任何应用信息,请使用:add 关联应用。

这是什么情况?

另外文档中的 avoscloud app 这儿 应该是add吧

命令行工具0.7.2内置是云引擎3.0吗?是否意味着可以在命令行工具中直接制作标准node项目?

另,老的2.0项目,怎样迁移到云引擎3.0呢?

这是命令行工具的 bug,更新下命令行工具就好了。

云代码2.0版本在本地调试时,可以使用localhost:3000/avos来进行本地调试,而升级到Node版的LeanEngine之后,这个页面就不能用了。
个人觉得,这个页面还是挺方便开发调试的。
请问,迁移到LeanEngine之后,如何继续使用localhost:3000/avos这个调试页面呢?

我们近期会把这个功能加入进去~

尝试将2.0的应用升级到3.0,按demo的样子改动了目录和package.json,尝试部署失败,系统输出日志:

命令行部署应用失败: Error: updateContainers err: Error: Cannot GET /1.1/functions/_ops/metadatas
部署应用失败: Error: updateContainers err: Error: 应用启动检测失败: 404_Cannot GET /__engine/1/ping

需要写一些缺省函数吗?有没有文档说明?

话说,目前文档中对如何从2.0升级到3.0给的提示太少了。

「应用启动检测失败: 404_Cannot GET /__engine/1/ping」
这个错误的解决办法时需要加载下 LeanEngine 中间件,比如这样:

app.use(AV.Cloud);

如果你有 cloud.js 文件,并且已经加载,比如这样:

var cloud = require("./cloud.js");
app.use(cloud);

也能起到同样的效果。

谢谢反馈,我们会把这样的信息添加到文档里。

多谢,这个问题解决了。
然后又有了新问题:

部署应用失败: Error: updateContainers err: Error: {"code":401,"error":"Unauthorized."}

应该是 appId 和 appKey 错误,请问初始化 AV 对象,是使用 环境变量 里面的值吗?建议不要自己写死 appId 和 appKey。

根据提示搞定了。谢谢。

新问题。模块"bcrypt"与 LeanEngine 3.0 有冲突。在2.0中引入该模块是OK的,升级到3.0后,引入该模块本地运行没问题,部署时出现如下错误。

令行部署应用失败: Error: updateContainers err: Error: 应用启动检测失败: Error: connect ECONNREFUSED
抱歉,部署失败 失败:命令行部署应用失败: Error: updateContainers err: Error: 应用启动检测失败: Error: connect ECONNREFUSED

换用 'bcrypt-nodejs' 似乎可以解决该问题。但是bcrypt-nodejs加密结果与已生成的bcrypt哈希密码不匹配。最后换成bcryptjs通过。

本主题已被解除置顶,它将不再显示在它所属分类的顶部。