今日鸡汤
每当你想要评论别人的时候,你要记住,不是世上所有人都拥有和你一样优越的条件。
愿你也做一个温暖的人。
今天接着来看阿里云的Serverless第二个场景——基于小程序Serverless开发个人相册小程序。
阿里小程序云
小程序云是阿里云面向小程序场景提供的一站式云服务,提供了有服务器和无服务器两种模式。其中,云应用是有服务器模式,提供了包括资源编排、应用托管等服务。小程序 Serverless 是无服务模式,提供了开发、运营、业务增值等服务。
小程序Serverless
阿里云小程序Serverless提供包括云函数、数据存储、文件存储等一整套后端服务。开发者通过API方式即可获取云函数、数据存储、文件存储、音视频、图像处理等服务,不需要关心服务器或底层运维设施。
- 数据存储:基于MongoDB托管在云端的数据库。
- 文件存储:支持图片、音频和视频存储在云端。
mpserverless.file
提供uploadFile
和deleteFile
来管理文件。 - 云函数:目前只支持用Nodejs开发,自己把代码传上去,可以在小程序里通过API调用。
它的开发流程有三步:
1) 注册小程序
2) 开通小程序Serverless服务,需要创建服务空间和云资源(数据库或文件存储)
3) 开发小程序
准备工作
按照上面的步骤,这个实验需要创建一个支付宝小程序,安装两个开发工具,开通一项阿里云服务。
- 在蚂蚁金服开放平台创建支付宝小程序。
-
安装小程序开发工具
MiniProgram Studio
-
安装支付宝开放平台开发助手
密钥生成器
支付宝开放平台开发助手用来生成密钥,在这里使用RSA2的密钥长度和PKCS8的密钥格式,生成小程序签名时的公钥和私钥。
-
开通阿里云小程序云服务
小程序云是阿里云面向小程序场景提供的一站式云服务,帮助开发者实现一云多端的业务战略。开发者可通过小程序云支撑各类小程序前端,在一朵云内实现统一的资源管理、统一的数据运营和统一的业务设计。 -
创建服务空间
成功开通服务后,需要首先创建服务空间。小程序开发中创建的云资源会和服务空间进行关联,所有的资源都是通过服务空间进行分配和管理的。
6.关联之前创建的支付宝小程序
填写小程序的AppID、应用私钥、支付宝公钥等信息,将支付宝小程序和小程序云做关联。
支付宝小程序关联
小程序代码结构
这个场景选择使用支付宝小程序内置的模板一键创建,需要用到云数据库(存放用户信息、照片信息等)和云存储(存放照片文件)。
配置信息
app.js里面关联小程序应用和小程序云。
配置信息
可以看到,加载serverless sdk后会实例化mpserverless
,并将它放在全局对象App
中。
同时,小程序在启动后需要调用authorize()
接口请求授权。
使用实例mpserverless
操作云存储和云数据库
- 向云数据库添加数据
await mpserverless.db.collection('files').insertOne(obj)
- 上传照片到云存储
mpserverless.file.uploadFile(options).then((image) => {
const { imgs } = this.data
imgs.push({ name: image.fileUrl })
this.setData({
imgs,
});
}).catch(console.log);
- 读取云数据库照片数据
async onReady() {
// 页面加载完成
const { id } = this.data
await mpserverless.db.collection('photos').find({ fileId: id }).then((res) => {
this.setData({ imgs: res.result });
}).catch(console.error);
}
测试小程序
直接在IDE或发送到支付宝进行测试,可以新建相册、上传照片、展示照片。
小程序预览界面
可以看到,小程序云上,云数据库和云存储已经创建了测试过程中需要的文件和数据库表。
云数据库 云存储
总结
通过这个BaaS的场景,体验了使用小程序Serverless这种无服务模式快速开发一个支付宝小程序,用到了两种后端基础资源(云存储和云数据库),只需要在小程序配置好相关的资源,直接通过API调用即可使用云上的资源,不需要自建服务器和存储,非常方便。
上一篇体验了Serverless构建AI平台,属于FaaS服务,这一篇体验了BaaS场景,可以看出,阿里云的Serverless对这两种服务的支持都有涵盖。在整个体验过程中,可以看出,阿里云已经将你需要使用的各类服务云化,开通即可使用,通过组合各类云服务,可以快速搭建起云原生应用。致力于做整个生态,只需要编写业务代码,其他基础设施的创建和管理通过配置来完成。
这样的思路对于小白来说使用起来非常友好,但是产品多到眼花缭乱,一个一个的了解还是需要一些时间。
这次的实验没有感受到Serverless重要的弹性伸缩功能和消除冷启动毛刺的预留实例,等待下次开发一个函数应用做一个压测再看啦。
下一篇来看看腾讯云的Serverless。
(未完待续)
网友评论