10月04, 2018

小程序云开发介绍

9月10日「小程序·云开发」开放,开发者工具新增「云开发」功能,开发者无需搭建服务器,就可实现小程序快速上线和迭代。

[云开发]主要包括三大基础能力:

  • 云函数—开发者可根据业务需求,编写函数并部署在云端,即可在小程序内调用。开发者无需维护复杂的鉴权机制,也无需购买、搭建服务器,可便捷地完成小程序开发。
  • 数据库—开发者可直接在小程序前端或云函数中对数据库进行读写,同时支持通过开发者工具内的「云开发」控制台进行数据管理。
  • 存储管理—开发者可便捷地在小程序前端快速实现文件上传/下载及管理功能,同时也可以在开发者工具「云开发」控制台内进行管理。

小程序云开发与Serverless

IT计算的进化就像人类的进化,每一次进化都带来生产效率上的提升。

alt

alt

在这个发展历程中有以下几个渐进的里程碑事件:

  1. 通过虚拟化技术将大型物理机虚拟成单个的VM资源。
  2. 将虚拟化集群搬到云计算平台上,只做简单运维。
  3. 把每一个VM按照运行空间最小化的原则切分成更细的Docker容器。
  4. 基于Docker容器构建不用管理任何运行环境、仅需编写核心代码的Serverless架构。

因此,这个发展历程也是一场IT架构的演进,期间经历了一系列代际的技术变革,把资源切分得更细,让运行效率更高,让硬件软件维护更简单。IT架构的演进主要有以下几个特点:

  • 硬件资源使用颗粒度变小
  • 资源利用率越来越高
  • 运维工作逐步减少
  • 业务更聚焦在代码层面

Serverless的优点:

  • 运营成本更低,开发者无需维护底层服务器和基础设施,只需专心业务逻辑
  • 降低开发成本,在开发过程中,用户可以只关心业务逻辑,不关心业务逻辑运行环境的其他内容。
  • 扩展能力强,架构的横向扩展是自动的、有弹性的、且由服务提供者所管理。
  • 管理简单,架构更加简单,管理成本更低。

小程序的云开发就是一种Serverless的实现方式,让小程序的开发门槛大幅降低。

首先,我们来看下如何创建一个云开发项目。

创建云开发项目

选择一个空的文件夹,新建一个小程序项目,输入AppID和项目名称,选择“建立云开发快速启动模板”。

alt

点击开发工具左上角的云开发小图标,开通云开发服务,并新建环境。

在实际开发中,建议每一个正式环境都搭配一个测试环境,所有功能先在测试环境测试完毕后再上到正式环境。以初始可创建的两个环境为例,建议一个创建为 test 测试环境,一个创建为 release 正式环境。

alt

alt

创建完后即可进入云开发控制台,控制台包含以下几个基本能力:

  • 概览:查看云开发基础使用数据
  • 用户管理:查看小程序用户信息
  • 数据库:管理数据库,可查看、增加、更新、查找、删除数据、管理索引、管理数据库访问权限等
  • 存储管理:查看和管理存储空间
  • 云函数:查看云函数列表、配置、日志和监控
  • 统计分析:查看云开发资源具体使用统计信息

alt

接下来分别举例介绍云函数、数据库和存储管理的用法。

云函数

新建的云开发快速启动模板的project.config.json文件中的配置如下:

alt

其中

"cloudfunctionRoot": "cloudfunctions/",

这段代码用于指定存放云函数的目录。在该目录上右键点击“新建Node.js云函数”即可新建云函数。

alt

创建成功后记得可安装本地依赖。

alt

在自动创建的index.js文件中增加如下代码:

// 云函数入口函数
exports.main = (event, context) => {
  console.log(event)
  console.log(context)
  return {
    sum: event.a + event.b
  }
}

并上传和部署该函数至云端。

alt

示例中的addFunction.wxml文件即调用addFunction.js文件中的testFunction函数,从而调用cloudfunctions/sum/index.js的云函数。

alt

所以,总的流程是当我们点击模拟器中“测试云函数”按钮,调用addFunction.wxml的testFunction函数,testFunction函数在addFunction.js中定义的是需要调用“name”为“sum”云函数,即调用cloudfunctions/sum/index.js主函数。

alt

劣势

小程序云开发虽然上手容易,也可以动态扩容,但目前还尚未成熟,而且开发出的接口,无法被外部的App和网页端调用。

未完待续。。。。

参考:

https://segmentfault.com/a/1190000012042629

https://help.aliyun.com/document_detail/65565.html

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/basis/getting-started.html

本文链接:https://www.daguanren.cc/post/wxapp_cloud.html

-- EOF --

Comments