博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
小程序云开发实战系列01--云环境设置
阅读量:6433 次
发布时间:2019-06-23

本文共 1694 字,大约阅读时间需要 5 分钟。

因为工作原因,使用过亚马逊AWS的serverless构架,当时就觉得这是一个非常适合小程序的基础设施。今年开始自己的微信小程序开发,决定用serverless架构,于是便使用了腾讯云做为小程序的后端,总结下来有以下几个痛点:

当暴露API给小程序时,需要使用已备案的域名。而在腾讯云里备案域名需要租用至少三个月的云服务器(无聊的套路)。但是我只用云函数,不需要云服务器。于是我花了一百多元租了个最低配云服务器只为了域名备案。

云函数的冷启动耗时不是特别理想,我需要使用一个定时器每隔30秒触发一次我比较常用的几个云函数,确保它们总是处于热启动的状态。

花了大量时间来配置云函数,对象储存,云数据库(用的是MySQL),CDN静态加速,使它们之间能顺畅的协同工作。令我意外的是腾讯云的人工客服系统。在配置系统时我经常会提交工单问一些自己难以解决的问题,有时是在凌晨两点。而他们的客服和工程师有时会在一小时内回答我的问题!

这个月当我开始新的小程序项目(私货夹带:《Meetup丨活动报名组局》)发现微信开发者工具整合进了云开发。于是便有了这个云开发实战系列。微信送了两个云环境,一个用于开发,一个用于发布。我命名一个为dev,一个为release。这一篇我想主要谈谈关于环境配置踩过的坑。

坑一:当完成开发准备发布时,我从dev环境转换到release环境。这个步骤并不是在云开发控制台上选择当前环境就能完成的,而需要在app.js里指定环境ID

App({  onLaunch: function () {    if (!wx.cloud) {      console.error('请使用 2.2.3 或以上的基础库以使用云能力')    } else {      wx.cloud.init({        env: 'release-xxxx' // 你的环境ID        traceUser: true,      })    }  }})

并在每一个云函数的cloud.init函数里指定环境ID

const cloud = require('wx-server-sdk')cloud.init({  env: 'release-xxxx' // 你的环境ID})const db = cloud.database()

坑二:从dev转到release时,千万不要忘记设置为release环境的数据库设置相应的权限,否则新环境会使用默认的仅创建者及管理员可读写,而我的小程序主页需要所有用户可读,仅创建者及管理员可写权限,这个问题很容易在开发阶段被忽视,因为开发测试时我一直是创建者身份。导致发布后朋友们纷纷告诉我打开后什么都没有显示:) 还好修改云开发不需要等待审核,第一时间纠正了错误。

坑三:使用定时触发器需要在云函数文档里添加一个config.json文件。但我花了一点时间才搞明白为什么触发器没有起作用。原来像往常一样点击“上传并部署”云函数并不会使触发器生效,而需要点击“上传触发器”。

screenshot-1
也许你已经发现其实我自己的粗心大意对这些坑负有责任,一些问题在小程序开发文档里有提及,比如设置环境ID。我只想说这些是很容易被忽略,但后果严重的问题。希望通过我的分享能帮大家节省点时间。我基本上对小程序云开发持相当正面的评价。它解决了我在使用腾讯云时遇到的三个痛点:1. 不再需要域名备案(备案通常需要好几天的时间,而且过程繁琐,需要填很多表,拍幕布照片等)2. 云函数的冷启动时间有改善,貌似微信针对性地做了优化,我不再需要设置定时触发来保证它们总处于热启动状态。3. 省去了自己搭建云后台所需要的配置过程,实现了开箱即用。

但小程序的云开发也有一些局限性,我会在下一篇《小程序云开发实战系列02--NoSQL云数据库》里分享我使用云开发数据库的一些体会,敬请期待。

本系列第二章:

《Meetup丨活动报名组局》是我最近开发的一个活动报名预约工具小程序,这个系列文章主要来自我在开发这款小程序时的一些体会心得。感兴趣的小伙伴可以扫下面的二维码进入我的小程序。

qrcode

转载地址:http://oexga.baihongyu.com/

你可能感兴趣的文章
sentences in movies and teleplays[1]
查看>>
【20181023T1】战争【反向并查集】
查看>>
win7网络共享原来如此简单,WiFi共享精灵开启半天都弱爆了!
查看>>
iOS9 未受信任的企业级开发者
查看>>
paper 40 :鲁棒性robust
查看>>
优化MySchool数据库(事务、视图、索引)
查看>>
使用笔记:TF辅助工具--tensorflow slim(TF-Slim)
查看>>
大话设计模式读书笔记3——单例模式
查看>>
Vue 项目构建
查看>>
[Ruby on Rails系列]2、开发环境准备:Ruby on Rails开发环境配置
查看>>
android studio adb
查看>>
框架源码系列二:手写Spring-IOC和Spring-DI(IOC分析、IOC设计实现、DI分析、DI实现)...
查看>>
asp.net编译 懒人脚本
查看>>
二分答案经典入门题:)
查看>>
为什么你需要将代码迁移到ASP.NET Core 2.0?
查看>>
Servlet的多线程和线程安全
查看>>
存储树形的数据表转为Json
查看>>
CAN 总线通信控制芯片SJA1000 的读写
查看>>
oauth授权协议的原理
查看>>
OutputCache说明
查看>>