资讯专栏INFORMATION COLUMN

小程序云开发实战系列01--云环境设置

Lin_R / 914人阅读

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

因为工作原因,使用过亚马逊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文件。但我花了一点时间才搞明白为什么触发器没有起作用。原来像往常一样点击“上传并部署”云函数并不会使触发器生效,而需要点击“上传触发器”。

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

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

本系列第二章:小程序云开发实战系列02--云数据库

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/100242.html

相关文章

  • 程序开发实战系列01--环境设置

    摘要:但小程序的云开发也有一些局限性,我会在下一篇小程序云开发实战系列云数据库里分享我使用云开发数据库的一些体会,敬请期待。 因为工作原因,使用过亚马逊AWS的serverless构架,当时就觉得这是一个非常适合小程序的基础设施。今年开始自己的微信小程序开发,决定用serverless架构,于是便使用了腾讯云做为小程序的后端,总结下来有以下几个痛点: 当暴露API给小程序时,需要使用已备案的...

    30e8336b8229 评论0 收藏0
  • 程序开发实战系列02--数据库

    摘要:需要指出的是微信小程序关于云数据库的开发文档非常的简略,对于像我这样没有太多经验的用户,很多时候需要参考的相关文档。而更让我苦恼的是微信小程序云开发集成的这个云数据库是一个简化版,只提供了非常有限的原子操作指令。 showImg(https://segmentfault.com/img/bVbmTlI?w=1000&h=563);以前一直是使用关系型数据库,第一次使用NoSQL,跟大家...

    王陆宽 评论0 收藏0
  • 程序开发实战系列02--数据库

    摘要:需要指出的是微信小程序关于云数据库的开发文档非常的简略,对于像我这样没有太多经验的用户,很多时候需要参考的相关文档。而更让我苦恼的是微信小程序云开发集成的这个云数据库是一个简化版,只提供了非常有限的原子操作指令。 showImg(https://segmentfault.com/img/bVbmTlI?w=1000&h=563);以前一直是使用关系型数据库,第一次使用NoSQL,跟大家...

    moven_j 评论0 收藏0
  • 程序开发实战系列02--数据库

    摘要:需要指出的是微信小程序关于云数据库的开发文档非常的简略,对于像我这样没有太多经验的用户,很多时候需要参考的相关文档。而更让我苦恼的是微信小程序云开发集成的这个云数据库是一个简化版,只提供了非常有限的原子操作指令。 showImg(https://segmentfault.com/img/bVbmTlI?w=1000&h=563);以前一直是使用关系型数据库,第一次使用NoSQL,跟大家...

    masturbator 评论0 收藏0
  • 开发数据库又增新技能!

    摘要:云函数支持单文件更新为了优化云函数代码的上传体验,云函数新增单文件更新功能。开发者可在需上传文件右键选择云函数增量上传体验单文件更新能力。云调用云调用是云开发提供的基于云函数使用小程序开放接口的能力,目前覆盖服务端调用开放数据等场景。 开篇彩蛋 由于近期小程序·云开发将上线付费功能(付费功能针对非基础资源配额,基础资源配额仍可免费使用)。为了给开发者更充足的时间进行调整,对于截止 20...

    Eastboat 评论0 收藏0

发表评论

0条评论

Lin_R

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<