当前位置: 首页 > 后端技术 > Node.js

小程序云开发实战系列01--云环境搭建

时间:2023-04-04 01:06:35 Node.js

因为工作原因,使用了亚马逊AWS的serverless架构,感觉是一个非常适合小程序的基础设施。今年开始自己做微信小程序开发,决定使用serverless架构,所以小程序的后台就用了腾讯云。总结起来有以下痛点:向小程序暴露API时,需要使用注册的域名。但是在腾讯云备案域名需要租用至少三个月的云服务器(无聊的套路)。但是我只用云函数,不需要云服务器。于是我花了100多块钱租了一台最低配置的云服务器,只是为了域名注册。云函数的冷启动时间不是特别理想。我需要用定时器每隔30秒触发我经常使用的几个云函数,保证它们一直处于热启动状态。花了很多时间配置云函数、对象存储、云数据库(使用MySQL)、CDN静态加速,让它们能够顺利协同工作。让我意外的是腾讯云的人工客服系统。在配置系统时,我经常开工单问我一些棘手的问题,有时凌晨2点。他们的客户服务和工程师有时会在一个小时内回答我的问题!这个月开始新的小程序项目时(私货夹带:《Meetup丨活动报名组局》)发现微信开发者工具集成到云开发中了。于是就有了这个云开发实战系列。微信送了两个云环境,一个开发,一个发布。我命名了一个开发者和一个发布者。本篇主要想说说环境配置踩过的坑。坑一:当开发准备发布的时候,我从dev环境切换到release环境。这一步无法在云开发控制台选择当前环境完成,需要在app.js中指定环境IDApp({onLaunch:function(){if(!wx.cloud){console.error('请使用2.2.3以上基础库使用云能力')}else{wx.cloud.init({env:'release-xxxx'//你的环境IDtraceUser:true,})}}})并在指定环境每个云函数的cloud.init函数中的IDconstcloud=require('wx-server-sdk')cloud.init({env:'release-xxxx'//你的环境ID})constdb=cloud.database()坑2:从dev切换到release的时候,不要忘记在release环境给数据库设置相应的权限,不然新环境会使用默认的read-writeonlyforcreatorsandadministrators,而我的小程序主页需要所有用户都可读,只有创建者和管理员可写。这个问题在开发阶段很容易被忽略,因为在开发和测试的时候我一直都是创造者。结果发布后,朋友告诉我,我打开后什么都没有显示:)还好云开发的修改不用等review,马上就改错了。坑3:使用定时触发需要在云函数文档中添加config.json文件。但我花了一段时间才弄清楚为什么触发器不起作用。原来像往常一样点击“UploadandDeploy”云函数并不能使触发器生效,而是需要点击“UploadTrigger”。也许你已经发现我自己的粗心实际上是造成这些陷阱的原因。小程序开发文档中提到了一些问题,比如设置环境ID。可以说,这些都是容易被忽视的问题,但后果很严重。希望我的分享能为您节省一些时间。我对小程序云的发展基本持比较肯定的态度。解决了我在使用腾讯云时遇到的三个痛点:1.不再需要域名备案(备案通常需要几天时间,过程繁琐,需要填很多表格,拍窗帘,等)2.Cloud函数的冷启动时间得到了改进。看来微信有针对性地优化了他们。我不再需要设置定时触发器来确保它们始终处于热启动状态。3、省去自己搭建云后台所需的配置过程,实现开箱即用。但是,小程序的云开发也有一定的局限性。我会在下一篇文章《小程序云开发实战系列02--NoSQL云数据库》中分享我使用云开发数据库的一些心得,敬请期待。本系列第2章:小程序云开发实战系列02--云数据库《Meetup丨活动报名组局》是我最近开发的一个小程序,作为活动报名工具。本系列文章主要来源于我在开发这个小程序时的心得体会。感兴趣的朋友可以扫描下方二维码进入我的小程序。