华哥有约第二期:云开发“三大件”&环境共享
发布于 3 年前 作者 xiuyinglong 4744 次浏览 来自 分享

栏目介绍

「华哥有约」是云开发Cloud Base官方出品的问答专栏,将由社区产品经理“华哥”分主题从不同维度解答云开发的热门门问题、剖析常见误区,帮助开发者更高效地使用云开发。

Q:云函数时区问题,怎么解决?

华哥:云函数中的时区为 UTC+0,不是UTC+8,可以通过语言的时间处理相关库或代码包(如 moment-timezone),识别 UTC 时间并转换为+8 区北京时间。

Q:云函数费用是按设置内存还是实际运行使用的内存计费?

华哥:云函数费用是按照函数配置内存和计费时长来计算费用的。

资源使用量 = 函数配置内存 X 运行计费时长。用户资源使用量,是由函数配置内存,乘以函数运行时的计费时长得出,其中配置内存转换为 GB 单位,计费时长由毫秒(ms)转换为秒(s)单位,因此,资源使用量的计算单位为 GBs(GB-秒)。计费时长最小粒度为100ms,不足100ms向上取整。例如,配置为 256MB 的函数,单次运行了 1760 ms,计费时长为 1800 ms,则单次运行的资源使用量为 (256/1024)*(1800/1000) = 0.45 GBs。针对函数的每次运行,均会计算资源使用量,并按月汇总求和,作为当月的资源使用量。

Q:跨账号环境共享,调用方上传文件资源至共享方后能否正常访问共享方的资源?

华哥:使用 new wx.cloud.Cloud 新建实例使用,再调用实例的 uploadFile 接口,上传资源成功后,另,B 目前无法通过 fileID 访问 A 的资源,可先使用 getTempFileURL 换临时链接的方式实现。

Q:跨账号环境共享,调用方无法在云文件目录右键选择环境且不可上传云函数?

华哥:目前共享的环境,不能在 cloudfunctions 上右键选择,另,因云函数权限很大,共享环境需要在资源方创建上传云函数,即创建空白函数可以在控制台进行,但是上传代码需要资源方在IDE上传。

Q:获取数据库集合数据Collection.get成功,但是返回空值?

华哥:读写数据库受权限控制限制,数据库数据权限默认是“仅创建者可读写”,如果业务需要所有用户可读,需开发者自行设置数据库数据权限为 “所有用户可读,仅创建者可读写” 。

Q:数据库无读写,为什么控制台资源使用情况会有数据库操作次数?

华哥:控制台对数据库菜单的操作,也会产生读次数。

Q:数据库可以创建多少个集合?单个集合大小限制?

华哥:预付费模式下,数据库集合个数取决于当前环境的配额方案,按量付费模式下可以创建800个集合;单个文档大小限制是16MB,但是不建议达到上限,最优解是越小越好,可拆分表格,有助于提升查询效率。

Q:数据库查询数据 limit 的使用?

华哥:limit 在小程序端默认及最大上限为 20,在云函数端默认及最大上限为  1000,取更多数据建议结合skip分页分批次获取。

const params = {  // 从集合 data 中随便选点全部 _id:db.command.neq(null)

}

const MAX_LIMIT = 100;

const total = (await db.collection('data').where(params).count()).total;

const batchTimes = Math.ceil(total / MAX_LIMIT)

const tasks = [] for (let i = 0; i < batchTimes; i++) { tasks.push(db.collection('data').where(params).skip(i * MAX_LIMIT).limit(MAX_LIMIT).get())

}

const data = []

if (tasks.length != 0) {

(await Promise.all(tasks)).map(item => {data = data.concat(item.data||[]) })

}

return data

Q:云开发数据库同时连接数是多少?


华哥:预付费模式下,数据库同时连接数取决于当前环境的配额方案,按量付费模式下,数据库的同时连接数是1000。

数据库同时连接数 :数据库请求并发数量,如同时有三十个数据库操作请求,则有二十个会同时执行,剩下十个返回超出并发错误;一次数据库请求(无论小程序端发起还是云函数端发起)将耗费一个连接;每个云环境分别有一个同时连接数限制、独立计数。假如数据库查询平均耗时 10ms,那么一个连接可以支持 100qps(1000ms/10ms=100),20个连接可以支持到 2000qps。


Q:如何下载云存储的文件夹?


华哥:可以直接使用 SDK 的 downloadDirectory 接口下载文件夹或者使用 CLI工具进行下载。


Q:存储缓存的配置规则?


华哥:存储配置设置了多条缓存策略时,相互之间会有重复,配置项列表底部的优先级会高于顶部优先级。


华哥有礼

你还想看云开发的哪些问题合集?在评论区告诉我们!9月3日中午12:00,抽取2名幸运用户赠送精美礼品一份!

4 回复

云开发 环境共享,对公众号端的文档与案例没有跟上,希望能补上,谢谢~

希望继续多讲讲云函数和数据库方面的知识和问题

跟着华哥学云开发

华哥吉祥

想知道服务商代云开发给用户开通的环境怎么分账让用户缴费?

华哥 yyds

可拆分表格,有助于提升查询效率

怎么联表查询?我是个小白,求指导

回到顶部