Serverless 开发前端初尝试
啥是云开发
云开发serverless是一种模式,和传统模式的区别在于开发者不用维护服务器。服务器的日常维护, 负载均衡,扩容和减容, 运维,安全,日志等都交给了云开发服务提供商比如AWS Lambda,microsoft Azure,国内的微信等等。通常分为2类,Backend-as-a-Service (BaaS): 提供第三方服务比如鉴权,音频转文字之类的;开发者一般通过API调用。Function-as-a-Service (FaaS),serverless一般都是指Faas,开发者可以在本地编写服务端的逻辑,然后部署到云服务商提供的容器中。我们也可以开发一般serverless一半传统服务的应用
serverless app运行在哪里呢
云开发的应用部署在事件驱动的, 自动加载的容器中,比如用Knative for Kubernetes构建的Faas环境。Knative 是个开源的社区项目,可以在Kubernetes上创建容器镜像并在Kubernetes 平台上运行。
当代码运行时,服务商动态的分配资源给你,故当代码不再运行时,意味着你不用付钱。serverless容器有以下特点:
- Stateless, 易于数据整合
- 支持短时间内部署运行,释放,不需要永远占用资源
- 事件驱动,包括应用内事件,云服务事件等等
这样的特性比较适合开发一些应用如聊天机器人,日历等。
serverless app的缺点
- 云服务商对serverless 应用的规范限制
- 云服务商的标准差异导致的迁移成本
微信小程序云开发尝鲜
先进行各种前期的项目配置:
- 打开微信开发者工具,创建新项目
- 填写appid,勾选云开发,选择一个模板如:todolist
- 云开发实例没有的话创建一下
- (刚创建的云开发环境可能会有10min左右的时间不可用)
可以看到project.config.json有个cloudfunctionRoot表示云函数文件夹,开