# 概述

  1. uniCloud为每个开发者提供一个免费的服务空间,更低门槛
  2. 按量付费是serverless的特色,如果没有消耗硬件资源,就完全不用付款
  3. serverless比传统的云主机更便宜
  4. 传统云主机一旦被攻击,高防价格非常昂贵。而uniCloud无需支付高防费用,不惧DDoS攻击。

uniCloud的定价、套餐内容、服务SLA,是由云厂商直接公布的。DCloud公司不会加价。uniCloud已经上线近3年,DCloud一直以良心方式服务开发者,努力降低应用的开发门槛、提高应用的开发效率。

  • 选择支付宝云作为服务商时,有一个免费服务空间。除最高档套餐外,其余套餐可享受一次“0元购”(活动截止2024年2月7日0点),有效期为3个月。支持超出套餐后按量计费。
  • 选择阿里云作为服务商时,有一个免费服务空间。更多服务空间需要付费,付费支持套餐和按量两种模式。
  • 选择腾讯云作为服务商时,需付费购买套餐,用量超出套餐后可开启按量计费,详情参考腾讯云基础套餐

付费用户享受云厂商提供的服务协议SLA,详见

# 阿里云

阿里云正式版版需要使用HBuilderX 3.6.5+(正式版)或3.6.10+(Alpha版)或与此版本对应的uni-app cli项目才可正常使用。如果是cli创建的项目,可以参考:更新依赖到指定版本

阿里云提供1个免费空间,付费空间提供包月、按量计费两种计费方式,具体说明如下:

计费方式 付费方式 超限策略 详情
包年包月 购买包年包月套餐,每月金额和可用量上限固定。 某资源超过套餐额度时会提前停止该资源使用,下个月恢复,亦可及时升配和转按量 参考 阿里云包月套餐
按量计费 先充值,根据使用量扣余额,每日结算。不用的余额可退 余额不足会停服,充值后恢复。亦可额外设置某资源指标的阈值,超阈值停用该资源 详见 参考 阿里云按量计费

包年包月套餐,适于业务稳定、套餐资源使用均衡的场景。

如果你难以预估会消耗多少云资源,或者业务波峰波谷变化较大,或者套餐中某些项目不够用、某些项目又用不完,此时推荐使用按量计费。

# 免费服务空间

阿里云为每个账号提供了1个免费服务空间,以方便产品开发测试及体验。具体额度请阅读下方包年包月套餐中的开发者版。

免费额度注意事项:

  • 阿里云免费服务空间有效期默认一个月,到期时需主动续期(到期前15天可续),不续期会被停服释放
  • 免费空间可以升配或转为按量计费。此时免费额度会释放,该账户仍可再创建一个免费空间
  • 免费空间如需升配包月套餐,只能针对剩余有效期进行操作,比如距离有效期结束还有7天,升配时需先为这7天升配套餐,7天后再按整月续费。

# 包年包月套餐

资源分类 资源细项 免费版 基础版 标准版 专业版 企业版 旗舰版
云函数 资源使用量(GBs/月) 1000 1万 20万 40万 150万 400万
调用次数(万次/月) 1.5 15 300 600 2400 6000
出网流量(GB/月) 1 1 20 40 160 500
云数据库 容量(GB) 2 2 3 5 10 10
读操作使用量(万RU/天) 0.05 5 25 50 150 500
写操作使用量(万WU/天) 0.03 3 15 30 100 300
集合数量 100 100 100 100 100 100
索引数量 400 400 400 400 400 400
云存储 容量(GB) 5 8 10 50 100 500
下载操作次数(万次/月) 0.2 10 200 750 1500 3750
上传操作次数(万次/月) 0.1 5 100 300 600 1500
CDN流量(GB/月) 1 2 10 50 150 500
前端网页托管 容量(GB) 5 8 10 50 100 500
CDN流量(GB/月) 1 2 10 50 150 500
售价(元/月) 免费 5 24 82 316 688
  • GBs、RU、WU等单位释义,见下

  • 套餐中的资源超标后服务空间会停服,需要及时升配或转按量计费才能恢复。

  • 包月套餐的服务空间,有如下可用操作:

    • 续费:时间到期前继续付费购买更长时间。到期后、销毁释放前,可以续费挽回。
    • 升配:将低档资源套餐升配为高档套餐。到期后不能操作。暂不支持降配。
    • 转按量:将包年包月套餐方式转为按量计费方式。见下。

# 包年包月套餐转按量计费

包年包月套餐支持转换按量计费,如果是付费套餐,转换后会按照剩余有效期核算退费金额并自动退费到uniCloud阿里云账号余额,以用于按量计费账单扣费。

注意: 按量计费不支持转换为包年包月,该操作不可逆,请谨慎操作。

# 按量计费

按量计费,意味着不是每个月支付固定费用,而是根据使用量付费。

按量付费需要预存余额,每日根据前一日资源消耗生成账单,从阿里云预存余额中扣除。

如果预存余额不足,则服务空间将不可用,需要立即充值。

阿里云按量计费服务空间定价如下:

资源分类 资源细项 售价(元)
云函数 资源使用量(GBs) 0.000110592
调用次数(万次) 0.0133
出网流量(GB) 0.8
云数据库 容量(GB/天) 0.07
读操作使用量(万RU) 0.015
写操作使用量(万RU) 0.05
云存储 容量(GB/天) 0.0043
下载操作次数(万次) 0.01
上传操作次数(万次) 0.01
CDN 流量(GB) 0.18
前端网站托管 容量(GB/天) 0.0043
流量(GB) 0.18

注意

  • GBs、RU、WU等单位释义,见下
  • 按量计费是延迟结算,可能存在前一日消耗大于余额导致欠费的情况。故创建按量付费服务空间时,需支付保证金,以确保欠费后开发者会缴纳欠费。如果您不再使用uniCloud的按量付费空间,可以申请退还保证金(发送邮件到service@dcloud.io)。
# 按量计费每日资源上限设置

如您担心按量计费会造成不可控的费用上升,也可以为各项资源设置用量上限。

资源上限可在web控制台服务空间详情进行设置,该设置实时生效。

每项资源指标的数据更新延迟时间不同,当数据更新且某项资源用量超过阈值时,则该项服务便会单独停用

资源阈值设置支持以下十二项资源指标:

资源分类 资源细项 最小值 数据更新延迟时间
云函数 资源使用量 1万GBs/日 20分钟
调用次数 1万次/日 20分钟
出网流量 1GB/日 20分钟
云数据库 容量 1GB 1小时
读操作使用量 1万RU/日 20分钟
写操作使用量 1万WU/日 20分钟
云存储 容量 1GB 6小时
下载操作次数 1万次/日 6小时
上传操作次数 1万次/日 6小时
CDN 流量 1GB/日 6小时
前端网站托管 容量 1GB 6小时
流量 1GB/日 6小时

上述指标,容量是累计的,其他单位则是按日的。

例如,设置了每日云存储下载次数不能超过1万次。如某日该超过该下载次数,则在超过的6小时后停止云存储的下载功能。同时不影响其他资源指标的使用。

注意

  • 资源上限设置针对的是每日用量,当日用量超设置的上限便会停服,受数据更新延迟时间影响,在停服时资源用量可能会超出所设阈值。
  • 资源上限设置实时生效,如果设置的阈值已超当时的用量,则会实时停服。每小时最多可操作三次。

# 各项资源释义说明

资源分类 资源细项 说明 数据更新延迟时间
云函数 资源使用量(GBs) 资源使用量GBs = 函数配置内存GB × 运行计费时长s。 例如,配置为256MB的函数,单次运行了1760ms,计费时长为1760ms,则单次运行的资源使用量为(256 / 1024) × (1760 / 1000) = 0.44GBs 20分钟
调用次数 - 20分钟
出网流量(GB) 在云函数中访问外网时产生的出网流量,包含请求三方服务器发送的数据和返回给客户端的数据。 20分钟
云数据库 容量(GB) - 1小时
读操作使用量(RU) 读操作使用量(Read Unit)= ceil(查询数据量KB / 4),即从数据表中读取一条4 KB数据(向上取整)计作1RU,例如读取7.6 KB的数据计作2RU。 20分钟
写操作使用量(WU) 写操作使用量(Write Unit)= ceil(写入数据量KB / 1),即向数据表中写入一条1 KB数据(向上取整)计作1WU,例如写入1.8 KB的数据计作2WU。 20分钟
云存储 容量(GB) - 6小时
下载操作次数 通过CDN加速访问的次数,回源次数暂不收费。 6小时
上传操作次数 - 6小时
CDN 流量(GB) 通过CDN加速产生的流量,回源流量暂不收费。 6小时
前端网站托管 容量(GB) - 6小时
CDN 流量(GB) 通过CDN加速产生的流量,回源流量暂不收费。 6小时

补充

  • 云函数实际执行时间精确到ms。运行内存默认为512M,可以在云函数package.json中调整。优化代码,降低云函数运行时间,有助于减少GBs的费用。
  • 数据库写操作使用量包含对数据的增、删、改。创建表及索引不计算写操作使用量。
  • web控制台导入导出数据功能,不计算读写操作使用量;导出db_init.json计算读操作使用量,执行db_init.json计算写操作使用量。
  • updateAndReturn操作只计算写操作使用量,不计算读操作使用量。
  • clientDB底层也是基于云函数实现,也会消耗云函数调用次数。

# 现阶段系统限制

因上游储备不足,目前uniCloud阿里云版仍有一些限额。DCloud会持续推动限额的解除。目前有需求的开发者需向DCloud人工联系申请提高限额。

资源分类 限制项 限额
云函数 callFunction请求QPS 1000
url化请求QPS(自定义域名) 1000
url化请求QPS(默认域名) 1000
固定IP代理请求QPS 20
最大实例数 300
函数数量限制 99
客户端请求最大超时时间 120秒
固定IP代理请求最大超时时间 5秒
定时任务单次最大运行时间 7200秒
定时任务最小执行间隔 1分钟
callFunction请求体最大限制 6M
url化请求体最大限制 2M
数据库 QPS 1000
并发执行数 100
单次请求超时时间 5秒
集合数量 100(可工单提升至300)
索引数量 400(可工单提升至1000)
单次请求获取的最大数据条数(limit) 1000
事务超时时间(从事务开始到事务提交或回滚) 10秒
云存储 上传QPS 300
删除QPS 300
查询QPS 300

目前单个账号可创建20个正式版服务空间,如有更多需求需发邮件到service@dcloud.io申请。此外云函数数量限制、集合数量限制也可申请提升。邮件模板见下方:申请解除限制邮件模板

# 申请解除限制邮件模板

邮件标题:服务空间数量限制提升申请 | 集合数量限制提升申请 | 云函数域名代理需求申请

邮件内容:

客户账号:uniCloud.dcloud.net.cn 登录账号(就是HBuilderX账号)
服务空间id:mp-xxxxxxx (注意不是服务空间名称而是id)
客户名称:当前账号认证的公司名称
负责人电话:
申请内容:申请提升 服务空间数量限制 | 集合数量限制 | 将www.xxx.com纳入云函数的域名代理中
业务场景:
业务规模:

# 其他说明

云存储数据处理:图片裁剪、视频截帧等功能。现阶段免费,但不排除后续收费可能。

# 欠费停服及资源销毁说明

  • 套餐指标超限: 包月套餐各项资源用量如有指标超上限时,该项指标服务便会停服,其他服务不受影响。比如云存储CDN流量超套餐上限,则云存储文件无法访问,其他服务正常。如需恢复,可升级套餐来获取更高套餐额度或转换为按量计费,升配或转按量计费后,资源恢复大约有10分钟左右延迟。

  • 套餐到期停服: 包月套餐在到期当天的0点10分左右开始停服,停服后服务空间无法正常使用,资源会保留15天。15天内操作续费服务恢复正常(续费后大约有10分钟左右延迟),未续费则会被销毁且无法找回。

  • 余额欠费停服: 按量计费空间没有到期时间,是在账户欠费时开始停服。阿里云在每天上午9点左右出前一日账单,出账后如果账户发生欠费,按量计费服务空间则会被停服无法正常使用,资源会保留15天。15天内操作余额充正服务恢复正常(续费后大约有10分钟左右延迟),15天后会销毁空间资源且无法找回。

服务空间即将到期时,我们会在到期前7天、3天、1天时分别进行三次过期通知,包括邮件、站内信、公众号、短信等通知渠道,请您及时关注相关信息。

# 阿里云公测版

阿里云公测版已于2022年11月15日公告,于21日停止新建,于2023年1月22日下线。详见:https://ask.dcloud.net.cn/article/40144

阿里云提供了公测版一键迁移到正式版的功能。执行一键迁移后云存储、云函数、数据库都会被迁移到新服务空间。迁移过程中云函数、数据库均可正常访问,云存储无法写入(删除或上传文件), 详见:阿里云公测版迁移正式版

# 腾讯云

使用腾讯云Nodejs12版本时,务必仔细阅读此文档:keepRunningAfterReturn

腾讯云于2022年8月12日更新了计费方式。

新计费模式下,统一采用基础套餐+按量计费的模式,开发者可先购买带有一定配额的基础套餐,超出套餐配额部分按使用量付费。

# 基础套餐

配额 个人版 入门版 初创版 商用版 团队版 团队高级版 团队进阶版 团队旗舰版 企业入门版 单位
QPS 500 500 500 800 1000 1500 2000 5000 10000 -
调用次数 20 500 1000 2000 5000 20000 40000 80000 100000 万次/月
容量 2 30 100 200 300 1500 3000 5000 8000 GB
集合数量限制 300 300 300 300 300 300 300 300 300
云函数资源使用量 10 30 45 60 100 1000 2000 4000 6000 万GBs/月
云函数出网流量 2 8 10 15 25 100 200 400 600 GB/月
云函数数量限制 150 150 150 150 150 150 150 150 150
CDN流量 5 80 200 400 600 2000 4000 8000 10000 GB/月
CDN回源流量 5 40 100 200 300 1000 2000 4000 5000 GB/月
价格 39.9 19.9 99 299 499 999 4999 9999 19999 29999 元/月
  1. 个人版5折折扣至少延续至2022年底,后续折扣如有变化将另行通知。
  2. 调用次数:包含云存储上传、下载操作;数据库读、写操作;云函数调用次数。
  3. QPS:和调用次数类似,包含云存储上传、云存储下载、数据库读、数据库写、云函数调用的QPS
  4. 容量:包含云存储、数据库容量。
  5. CDN流量CDN回源流量:仅包含云存储,不含前端网页托管
  6. 开通基础套餐时可以选择是否允许超量,开启后如果用量超出套餐配额将按照按量付费定价进行收费
  7. 套餐在有效期内可进行续费、升配,到期当天可降配,到期后只可续费
  8. 前端网页托管开通后即为按量计费,不管服务空间有没有开启允许超量使用,前端网页托管计费参考高级功能按量计费
  9. 团队高级版及以上套餐为新增套餐,账号注册时间自2023年5月1日起,且未创建过腾讯云空间或第一次创建腾讯云空间在2023年10月9日之后时,支持购买

关于计费项的额外说明

  • 创建表、索引均计算一次写入
  • updateAndReturn操作只计算写次数,不计算读次数
  • 云函数出网流量包含请求三方服务器发送的数据和返回给客户端的数据
  • clientDB底层也是基于云函数实现,也会消耗云函数调用次数

# 超套餐后按量付费/超量使用定价

计费项 定价
调用次数 0.5元/万次
容量 0.1元/GB/天
云函数资源使用量 0.00011108元/GBs
云函数外网出流量 0.8元/GB
CDN流量 0.21元/GB
CDN回源流量 0.15元/GB

# 高级功能按量计费定价

以下条目的消耗不属于套餐内资源,会从账号的腾讯云余额进行扣除。

计费项 计费项 定价
前端网页托管 容量 0.005元/GB/天
流量 0.21元/GB
日志服务 标准索引存储 0.0115元/GB/日
标准日志存储 0.0115元/GB/日
标准索引流量 0.35元/GB/日
写流量 0.18元/GB/日
请求次数 0.15元/百万次/日
分区数量 0.04元/个/日
  • 在正式进行计费方式切换之日起,用户将不可继续续费或新购旧版套餐或按量计费服务空间。用户可选择是否切换新的计费方式,超时(2022.09.08)切换的服务空间将会停服释放。
  • 新计费下腾讯云云函数日志保存时长为7天

注:当包年包月服务空间升级新套餐时,如果已开通前端网页托管,则前端网页托管会自动转为按量计费,请确保账号余额充足!

# 欠费停服及资源销毁

套餐到期第二天服务空间会进入隔离状态,服务空间不可用,资源会保留7天。7天内操作续费服务恢复正常(续费后大约有10分钟左右延迟),7天后会销毁空间资源且无法找回。

当腾讯云按量余额欠费时,服务空间的云函数日志超限按量将会自动关闭。如果服务空间套餐资源已超上限,则服务将会停服不可用。腾讯云按量余额充正后需手动开启相关服务。

服务空间即将到期时,我们会在到期前7天、3天、1天时分别进行三次过期通知,包括邮件、站内信、公众号、短信等通知渠道,请您及时关注相关信息。

# 支付宝云

支付宝云需要使用3.97+或与此版本对应的uni-app cli项目才可正常使用。如果是cli创建的项目,可以参考:更新依赖到指定版本

支付宝云采用基础套餐+按量计费的模式,开发者可先购买带有一定配额的基础套餐(免费版也可以),超出套餐配额部分按使用量付费。

支付宝云提供1个免费空间:

  • 免费服务空间有效期默认一个月,到期时需主动续期(到期前15天可续),不续期会被停服释放。
  • 免费空间可以升配。此时免费额度会释放,该账户仍可再创建一个免费空间。
  • 免费空间可以通过设置资源用量上限来实现超限按量,该功能需要充值保证金及支付宝按量余额。

扫码加入官方钉钉交流群

# 包年包月套餐

资源分类 资源细项 免费版 基础版 标准版 专业版 企业版 旗舰版
云函数 资源使用量(GBs/月) 1000 1万 20万 40万 150万 400万
调用次数(万次/月) 1.5 15 300 600 2400 6000
出网流量(GB/月) 1 1 20 40 160 500
云数据库 容量(GB天) 6.2 62 93 155 310 310
读操作使用量(万RU/月) 62 155 775 1550 4650 15500
写操作使用量(万WU/月) 31 93 465 930 3100 9300
集合数量 400 400 400 400 400 400
索引数量 20/集合 20/集合 20/集合 20/集合 20/集合 20/集合
云存储 容量(GB天) 155 248 310 1550 3100 15500
下载操作次数(万次/月) 0.2 10 200 750 1500 3750
上传操作次数(万次/月) 0.1 5 100 300 600 1500
CDN流量(GB/月) 1 2 10 50 150 500
CDN回源流量(GB/月) 0.5 1 5 25 75 250
前端网页托管 容量(GB天) 155 248 310 1550 3100 15500
CDN流量(GB/月) 1 2 10 50 150 500
售价(元/月) 免费 4.5 22 76 300 652
  • 付费套餐除旗舰版之外可享有一次“0元购”,有效期三个月,活动结束时间为2024年2月7日0点。
  • 套餐中的资源超标后服务空间会停服,需要及时升配或调整资源上限设置。

# 套餐变配

支付宝云包年包月套餐支持升降配,升配或降配套餐,不会影响原来套餐的有效时长。

操作类型 需满足条件 生效周期
升配套餐 当月未操作过降配 立即生效(10分钟左右延迟)
降配套餐 剩余有效期1个月以上 次月生效

升降配的差价计算规则:高规格套餐的剩余时长价格 - 低规格套餐的剩余时长价格。剩余时长计算单位为月,剩余时长不足一个月时按一个月计算。

升配举例: 将套餐A升级至套餐B,假设原套餐A已经购买了3个月,在第2个月发起升配。则需要补充第2个月和第3个月的差价(不满1个月按1个月算) 即:补充差价 = 2 *(套餐B价格-套餐A价格),支付成功后,10分钟左右生效。

降配举例: 将套餐A降级至套餐B,假设原套餐A已经购买了3个月,在第2个月发起降配。则自动退还第3个月的差价到支付宝云按量余额(次月才会生效)。 即:退还差价 = 1 *(套餐B价格-套餐A价格),支付成功后,当前依然是套餐 A;需要等下个月度资源周期自动降级至套餐B。

注意事项

  • 到期当月不可降配,如需降配需要先续费再降配,差价会退还至支付宝按量余额
  • 一个月度资源周期只能操作一次降配,操作降配后当月不能再升配及续费
  • “0元购”服务空间具有特殊性,降配至其他付费套餐需支付套餐差价,所以提前降配不划算,可以在到期当月先续费再降配,差价会退还至支付宝按量余额

# 超套餐后按量付费/超量使用定价

资源分类 资源细项 售价(元)
云函数 资源使用量(GBs) 0.000110592
调用次数(万次) 0.0133
出网流量(GB) 0.8
云数据库 容量(GB/天) 0.07
读操作使用量(万RU) 0.015
写操作使用量(万WU) 0.05
云存储 容量(GB/天) 0.004
下载操作次数(万次) 0.01
上传操作次数(万次) 0.01
CDN 流量(GB) 0.18
CDN回源流量(GB) 0.15
前端网站托管 容量(GB/天) 0.004
流量(GB) 0.2

# 资源上限设置

资源上限可在web控制台服务空间详情进行设置,该设置为每项资源用量基于套餐额度的百分比,该设置实时生效。

创建服务空间时,该项设置也会进行初始化:

  • 如果账号已有保证金及支付宝按量余额,默认无限制,即开启超限按量
  • 如果账号无保证金或支付宝按量余额不足,默认限制套餐资源用量的100%

资源上限设置支持以下十三项资源指标:

资源分类 资源细项 数据更新延迟时间
云函数 资源使用量 1.5小时
调用次数 1.5小时
出网流量 1.5小时
云数据库 容量 1天+1小时
读操作使用量 1小时10分钟
写操作使用量 1小时10分钟
云存储 容量 2小时
下载操作次数 2小时
上传操作次数 2小时
CDN 流量 2小时
CDN回源流量 2小时
前端网站托管 容量 2小时
流量 2小时

上述指标,在保证金及支付宝按量余额充足的情况下,可设置0-300%,0为无限制。

例如,设置了云存储下载次数为20%。如果下载次数超过 套餐云存储下载次数额度*0.2 后,在超过的2小时后会将服务空间停服。

注意

  • 资源上限设置实时生效,如果设置的阈值已超当时的用量,则会停服。
  • 保证金及余额充足时,如超资源上限设置停服,可通过修改设置的上限配置来恢复服务。
  • 因资源用量数据更新延迟问题,可能会导致超过资源上限设置而出按量计费账单,余额不足时会导致欠费。

# 各项资源释义说明

资源分类 资源细项 说明 数据更新延迟时间
云函数 资源使用量(GBs) 资源使用量GBs = 函数配置内存GB × 运行计费时长s。 1.5小时
调用次数 - 1.5小时
出网流量(GB) 在云函数中访问外网时产生的出网流量,包含请求三方服务器发送的数据和返回给客户端的数据。 1.5小时
云数据库 容量(GB天) 容量GB天 = 月度资源周期内每日容量累加,日容量 = 当日峰值容量。 1天+1小时
读操作使用量(RU) 读操作使用量(Read Unit)= ceil(查询数据量KB / 4),即从数据表中读取一条4 KB数据(向上取整)计作1RU,例如读取7.6 KB的数据计作2RU。 1小时10分钟
写操作使用量(WU) 写操作使用量(Write Unit)= ceil(写入数据量KB / 1),即向数据表中写入一条1 KB数据(向上取整)计作1WU,例如写入1.8 KB的数据计作2WU。 1小时10分钟
云存储 容量(GB天) 容量GB天 = 月度资源周期内每日容量累加。 2小时
下载操作次数 通过CDN加速及回源访问的次数。 2小时
上传操作次数 - 2小时
CDN 流量(GB) 通过CDN加速产生的流量。 2小时
CDN回源流量(GB) 通过CDN回源产生的流量。 2小时
前端网站托管 容量(GB天) 容量GB天 = 月度资源周期内每日容量累加。 2小时
CDN 流量(GB) 通过CDN加速产生的流量,回源流量暂不收费。 2小时

举例说明

  • 资源使用量GBs:假如配置为512MB的函数,单次运行了1760ms,计费时长为1760ms,则单次运行的资源使用量为(256 / 1024) × (1760 / 1000) = 0.44GBs
  • 云数据库容量:假如某日容量从0增长到2GB又降到1GB,则当日资源用量为 2GB(当日峰值容量)* 1(天)= 2GB天
  • 云存储&前端网页托管容量:每日容量 = 当日每小时上报容量累加 / 24,每小时上报容量 = 每小时最后一个时间点的当前容量。假如某日0点容量为1GB,1点时容量为2GB,且之后当天容量未发生变化,则当日资源用量为 (1GB + 2GB * 23) / 24 = 1.96GB天

补充

  • 云函数实际执行时间精确到ms。运行内存最小为128M。
  • web控制台导入导出数据功能,不计算读写操作使用量;导出db_init.json计算读操作使用量,执行db_init.json计算写操作使用量。
  • updateAndReturn操作只计算写操作使用量,不计算读操作使用量。
  • clientDB底层也是基于云函数实现,也会消耗云函数调用次数。

# 用量监控

支付宝云支持查看实时的用量监控(延迟5分钟左右),支持云函数、数据库及云存储三项资源的用量监控,方便开发或运营过程中定位&排查问题。

用量监控入口:uniCloud控制台=>进入支付宝云服务空间=>左侧菜单“用量监控”。

监控中可根据云函数来查询该云函数产生的用量,用量监控支持按天维度查询,最小时间粒度1分钟。各项监控具体规则如下:

# 函数监控

可查询各云函数云端运行情况,不包含本地运行云函数的数据。参考云函数调用总次数可以计算当时的QPS。

# 数据库监控

可根据云函数来查询由该云函数产生的数据库用量,当查询条件为全部时,包含控制台对数据库操作用量。数据库监控暂不支持按表维度查询。

数据库监控中的读写次数是真正意义上产生的读写次数,与账单中的读操作量(RU)、写操作量(WU)不同,没有根据数据量大小折算的逻辑。

# 云存储监控

云存储监控数据目前仅包含客户端API及云函数API产生的用量。暂不包含控制台管理文件、通过文件url直接访问产生的CDN请求等用量,后续会补齐这两项用量监控。

  • 用量监控数据可查看2024年3月18日起产生的数据,历史数据保留一个月
  • 用量监控数据与账单数据统计维度不同,仅适用于监控查看,实际出账以账单用量为准

# 备案码

为了解决域名备案问题,支付宝云服务空间在过去90天累计消费满100元时可申请阿里云备案码,消费账单统计时间为T+1,每个空间可申请一个备案码。

备案码申请入口:uniCloud控制台=>进入支付宝云服务空间=>左侧菜单“备案码管理”,符合条件的服务空间可点击“申请备案码”来申请。

申请后可看到备案码信息,该备案码可用于阿里云域名备案。

注意:申请备案码后服务空间不支持申请销毁退费

# 欠费停服及资源销毁说明

  • 套餐指标超限: 包月套餐各项资源用量如有指标超上限时,服务空间会被停服。超上限的资源用量如果大于1分钱则会出账并从支付宝按量余额中扣除,如余额不足则会欠费。

  • 套餐到期停服: 包月套餐在到期后第二天开始停服,停服后服务空间无法正常使用,资源会保留7天。7天内操作续费服务恢复正常(续费后大约有10分钟左右延迟),未续费则会被销毁且无法找回。

  • 余额欠费停服: 支付宝云在每天上午10点左右出前天账单(T+2),欠费后无法新购、续费及变配服务空间,并会在欠费后第二天停服所有服务空间,欠费后第7天释放所有服务空间。欠费充值余额正常后,大于有5分钟延迟来恢复停服空间。

服务空间即将到期时,我们会在到期前7天、3天、1天时分别进行三次过期通知,包括邮件、站内信、公众号、短信等通知渠道,请您及时关注相关信息。

注意: 如果一个支付宝关联了多个DCloud账号(最多可绑定5个),当其中一个DCloud账号的支付宝按量余额欠费时,该支付宝账号关联的所有DCloud账号服务空间都会停服

# 余额及保证金

按量计费时,涉及余额和保证金的概念。包年包月不涉及这2个概念。

余额指开发者使用按量计费时提前充值的金额,发生资源消耗后,会从余额里扣除。

余额分为阿里云余额和腾讯云余额。2个余额不通用,比如腾讯云的余额,在开发者充值后直接转到了腾讯的收款账户里,由腾讯云计费和停服。

因按量扣费不是实时,而是隔天,所以可能出现某天消耗过大、余额不足以支付昨日账单的情况。此时就发生了欠费。

开发者欠费时,DCloud仍需要向云厂商缴纳欠费。所以为了避免开发者不缴纳欠费,DCloud收取了200元保证金。

当开发者不再使用按量计费时,保证金可退还。

余额充值后不支持退款,余额不支持购买包年包月套餐,请根据业务使用量合理选择充值金额

腾讯云余额可用于服务空间套餐资源用尽后超限按量、前端网页托管等服务产生的费用。 腾讯云的套餐资源用完后,当前空间若开启了超限按量功能,则会使用按量计费规则对前一日资源用量进行计费,并并从腾讯云余额中扣除。当前空间若未开启了超限按量功能,则会触发停服操作。

阿里云服务空间没有超限按量功能,但是提供了按量计费的服务空间,阿里云余额适用于按量计费服务空间产生的费用扣款。

账户保证金在停止使用按量计费服务后可以申请退还,所以账户保证金不能申请开具发票,但可申请开具收据,申请方式:发送邮件到 fapiao@dcloud.io,邮件内容:

邮件标题:uniCloud保证金收据申请

邮件内容:

客户账号:uniCloud.dcloud.net.cn 登录账号(就是HBuilderX账号)
客户名称:当前账号认证的公司名称/个人姓名,会显示在收据上
申请内容:申请阿里云/腾讯云保证金收据
金额:200元

若需退还保证金,需满足以下条件:

  1. 如有阿里云按量计费服务空间,需先删除该账号下所有阿里云按量计费服务空间
  2. 如有腾讯云服务空间,需关闭所有腾讯云服务空间超限按量、云函数日志服务以及前端网页托管功能;

退还保证金申请路径:uniCloud控制台费用中心自助申请退还。

申请时,如果保证金订单付款时间距今已未超出第三方支付原路退还时间(微信支付365天内,支付宝90天内),则原路实时退还; 否则,在申请时需填写收款支付宝的账号及姓名,我们将在1-3个工作日左右进行审核并操作支付宝转账来退还保证金。

当保证金充值订单付款方式为对公打款时,无法在线自助申请退还,需使用uniCloud注册邮箱发送邮件到 service@dcloud.io来申请,邮件内容模板:

邮件标题:uniCloud保证金退还申请

邮件内容:

客户账号:uniCloud.dcloud.net.cn 登录账号
申请内容:申请退还uniCloud保证金
金额:200元

注意:如果您注册uniCloud账号使用的是qq号@qq.com这类邮箱,发送邮件时,请勿使用qq邮箱的域名邮箱,需更换为qq号@qq.com 这种邮箱发送邮件。

# 发生故障时如何判断故障点

当你的线上系统故障时,可以参考此文档判断责任归属:如何判断是DCloud或阿里云或腾讯云的问题

# 云厂商之间的差异

# 套餐区别

付费方式 细项 腾讯云 阿里云 支付宝云
包年包月套餐 是否提供免费版 1个 1个
超出套餐按量计费 支持 不支持 支持
按量计费资源上限设置 不支持 不支持 支持
纯按量计费 - 不支持 支持 不支持
- 备案码 不支持 不支持 支持

# 资源限制差异

资源类型 细项 腾讯云 阿里云 支付宝云
服务空间 单账号空间数量限制 50个 20个(可工单提升至30~100个) 100个
云函数 云函数数量限制 149 99个 499个
云函数最大实例数 256MB*500个 300个 600个
入参大小限制(callFunction请求 ) 6MB 6MB 6MB
入参大小限制(http触发 ) 文本格式100KB,二进制内容20MB 2MB 文本格式100KB,二进制内容20MB
返回值大小限制(callFunction请求) 6MB 6MB 6MB
返回值大小限制(http触发) 6MB 2MB 6MB
最大超时时间(callFunction请求 ) 30秒 120秒 180秒
最大超时时间(http触发 ) 30秒 120秒 180秒
QPS 按套餐阶梯最大10000 1000 2000
定时任务单次最大运行时间 900秒 7200秒 3小时
云数据库 单次请求超时 5秒 5秒 5~300秒
集合数量限制 300 100(可工单提升至300) 400
索引数量限制 20/集合 400(可工单提升至1000) 20/集合

# 云厂商之间的迁移

# 数据库迁移

目前可以使用云数据库的导入导出进行迁移,迁移数据库之前可以使用导出db_init.json功能将所有集合及索引导出。再使用数据导入导出功能进行迁移。导入导出请参考:数据导入导出和备份

也可以直接使用第三方封装好的插件:unicloud数据库一键搬家工具,支持阿里云与腾讯云互转。支持跨账号转。

# 腾讯云迁移到阿里云

迁移数据可以通过在腾讯云服务空间导出数据表为json文件,在阿里云服务空间导入json文件到表的方式进行迁移。

# 阿里云迁移到腾讯云

由于此前腾讯云并未完全支持ObjectId类型的数据,在阿里云迁移到腾讯云时需要注意处理一下ObjectId类型的数据,包括自动生成的_id字段以及关联到其他表的_id的字段。简单来说就是将导出的数据内的ObjectId类型的数据处理成字符串且不满足ObjectId的格式。

例:

// 原始数据
{"_id":{"$oid":"60fa6d25cd84d60001ec38a2"},"uid":{"$oid":"60fa6d1d2e5faa0001ade857"}}

// 调整后的数据
{"_id":"60fa6d25cd84d60001ec38a2a","uid":"60fa6d1d2e5faa0001ade857a"} // 在结尾追加了一个“a”使其不满足ObjectId格式

以下为一个简单的脚本示例用于处理导出的json文件

如果将此文件存储为parse.js,使用node parse.js 输入文件相对或绝对路径 输出文件相对或绝对路径即可处理导出的json文件

const fs = require('fs')
const path = require('path')
const readline = require('readline')

const cwd = process.cwd()
const inputPath = path.resolve(cwd, process.argv[2])
const outputPath = path.resolve(cwd, process.argv[3])

if (fs.existsSync(outputPath)) {
  throw new Error(`输出路径(${outputPath})已存在`)
}

function getType(val) {
  return Object.prototype.toString.call(val).slice(8, -1).toLowerCase()
}
function parseRecord(obj) {
  const type = getType(obj)
  switch (type) {
    case 'object':
      if (obj.$oid) {
        return obj.$oid + 'a'
      }
      const keys = Object.keys(obj)
      for (let i = 0; i < keys.length; i++) {
        const key = keys[i];
        obj[key] = parseRecord(obj[key])
      }
      return obj
    case 'array':
      for (let i = 0; i < obj.length; i++) {
        obj[i] = parseRecord(obj[i])
      }
      return obj
    default:
      return obj
  }
}

async function parseCollection() {
  const inputStream = fs.createReadStream(inputPath)
  const outputStream = fs.createWriteStream(outputPath)

  const rl = readline.createInterface({
    input: inputStream
  });

  for await (const line of rl) {
    const recordStr = line.trim()
    if (!recordStr) {
      continue
    }
    const record = parseRecord(JSON.parse(recordStr))
    outputStream.write(JSON.stringify(record) + '\n')
  }
  rl.close()
  console.log(`处理后的文件已输出到${outputPath}`)
}

parseCollection()