|
|
前边我们已经普及了云开发的基本知识,而uniCloud
是DCloud
联合阿里云、腾讯云,为开发者提供的基于serverless
模式和js
编程的云开发平台。开发者可以自主在阿里云版和腾讯云版之间切换。

是的,你完全可以放心,云开发的基础设施仍然是由阿里云和腾讯云两大云计算基础设施服务商提供的。它包含IaaS
层(由阿里云和腾讯云提供硬件和网络)和PaaS
、Faas
层(由DCloud提供开发环境)。开发时虽然使用DCloud
的工具,但应用上线时,手机端是直连阿里云或腾讯云的serverless
,不经由DCloud
的服务器。

uniCloud云开发提供的主要是云函数、云数据库、云存储(含CDN)、网页托管等几大服务内容。
服务空间
一个服务空间对应一整套独立的云开发服务,包括数据库、存储空间、云函数等资源。服务空间之间彼此隔离。每个服务空间都有一个全局唯一的space ID
。
选择
阿里云
作为服务商时,目前
服务空间资源完全免费
,每个账号最多允许创建50
个服务空间。选择腾讯云
作为服务商时,只可以创建1
个免费的服务空间。
*由于阿里云提供的免费服务空间较多,本小册内实战案例的云服务商都会使用阿里云,后面不再赘述
云函数
云函数是运行在云端的JavaScript
代码,掌握javascript
就可以编写后端服务。如果你已经熟练掌握nodejs
,那么你可以直接上手。如果没有nodejs
经验,也完全不用担心,因为大部分学nodejs
时必须学习的内容,在开发云函数时用不大上。
云函数实例
还记得前面讲云开发概念时提到的基于事件激活服务器资源吗?云函数每次执行的宿主环境(可简单理解为虚拟机或服务器硬件)可能相同也可能不同。没有云函数执行时,完全不消耗服务器的云函数相关资源。但这也会带来云函数冷、热启动的问题:
云函数被调用时,完整执行以下步骤的过程一般称作冷启动
, 冷启动
的耗时长于热启动
,一般在1秒出头。
实例化计算实例 加载函数代码 启动 node 执行代码
以阿里云举例:一个云函数被调用后,15分钟以内没有第二次调用的话,这个云函数的实例就会被释放回收,下次再调用会重新执行1,2,3,4完整步骤激活资源。如果在15分钟内再次调用,则会跳过1,2,3步,这次调用就会很快响应,这就叫做热启动
。
云函数数量
以阿里云为例,因为同级别的腾讯云只会更少。阿里云的免费服务空间最多只能有48个云函数。
不过这个数量在大部分业务场景中是完全够用的,真的不够时,我们还可以利用云函数路由来显著减少云函数的数量。并且,如果我们使用云函数路由,云函数的冷启动问题也会减轻很多。
云数据库
uniCloud
提供了一个JSON
格式的文档型数据库。顾名思义,数据库中的每条记录都是一个JSON
格式的文档。

一个服务空间,只会有一个数据库database
。一个数据库支持多个集合collection
(表)。一个集合可以有多个记录doc
。每个记录可以有多个字段field
。
云存储
选择阿里云作为服务商时云存储和cdn
都是完全免费的,阿里云单文件大小限制为100M,腾讯云单文件最大为5G。
基本上我们可以利用云存储存放大部分类型的文件,图片、视频、文本、zip等等,但阿里云目前由于安全原因暂时禁止在云存储中上传html文件。
网页托管
uni-app
支持发布web
端,静态网页托管服务就是基于uniCloud的能力,为开发者的html网页提供存储、管理和可访问的服务。
更快速:不经过web server,页面和资源直接上cdn,就近访问,速度更快。 更安全:不存在传统服务器各种操作系统、web server的漏洞,不用天天想着打补丁。不怕DDoS攻击,永远打不垮的服务。 更省心:无需再购买虚拟机、安装操作系统、配置web服务器、处理负载均衡、处理大并发、处理DDoS攻击......您什么都不用管,只需上传您写的页面文件 更便宜:uniCloud由DCloud联合阿里云和腾讯云推出,其中阿里云版本完全免费。
小结
本节内容主要让大家对uniCloud
先建立一个全面的认知,后面的章节中会继续带大家深入学习。
接下来的两个小节将带大家实战,更加直观的感受uniCloud
带来的开发效率的提升。
FAQ
腾讯云、阿里云的具体差异
uniCloud配置小程序请求白名单
各家小程序平台,均要求在小程序管理后台配置小程序应用的联网服务器域名,否则无法联网。根据下表,在小程序管理后台设置request合法域名、uploadFile合法域名(如没有上传文件业务,可不设置)。下表的域名均为阿里云或腾讯云自有域名,并非DCloud所属域名。
| 服务提供商 | request合法域名 | uploadFile合法域名 | download合法域名| |
|---|---|---|---|
| 阿里云 | api.bspapp.com | bsppub.oss-cn-shanghai.aliyuncs.com | 须从云服务管理后台查看 |
| 腾讯云 | tcb-api.tencentcloudapi.com | cos.ap-shanghai.myqcloud.com | 须从云服务管理后台查看 |
如果需要用uni.request请求云存储内的文件,需要将云存储域名(即上表中的download合法域名)配置到request合法域名内

没有数据库设计的经验怎么办?
对于初学者,如果不了解数据库设计,可以参考opendb,已经预置了大量常见的数据库设计。
有了前端网页托管真的连域名都不需要了吗?
前端网页托管
,自带一个测试域名,仅用于产品体验及测试可快速体验前端网页部署的完整流程,该域名每分钟最多60次请求,默认每日仅允许10个公网IP访问,超出部分,需通过手动方式将来源IP加入白名单,IP白名单也会有数量限制。所以业务如要上线商用,还是请配置自己的正式域名,配置后,将不受上述测试域名的限制。









