云函数 计费bug cloud.DYNAMIC_CURRENT_ENV
发布于 6 年前 作者 asun 15244 次浏览 来自 官方Issues

情况说明:

一个项目有两个云环境:A  和 B

A 环境使用收费 基础版2 ¥30/月,由于小程序 用不完那么多资源(一个月还剩80%),所以选择资源过期后降级,

由于降级需要清空云资源,并且需要在套餐过期前才能正常降级

(杀千刀的,那么多云资源快过期提示,既然没有一条和我说:想要正常降级,必须在资源有效期间);

云资源已经过期,并且在隔离其的我,只有两个选择,

继续充钱A环境(冲了等于我要将前面的想法延后半个月以上,不然就浪费了),使用另外一个环境B。

所以我选择使用另外一个环境B:

将A环境的资源和云函数迁移到B环境,并将A的资源和函数删除,

现在BUG来了:

// 初始化 cloud

cloud.init({

// env: ‘某个环境id’ 或者 cloud.DYNAMIC_CURRENT_ENV 当前函数所在的

env: cloud.DYNAMIC_CURRENT_ENV

// env: “ssssssssssssssssss”

})

由于所有的云函数方法在迁移前 env 的值 是A环境ID "xxxxxxXX"的, 为了方便以后(env 真的有点鸡肋),

我全部改成  cloud.DYNAMIC_CURRENT_ENV,并且小程序端的 env 也改成了 B的环境ID ssssssssssssssssss

BUG正式出现了:

改了并上传部署成功之后,大部分的云函数正常运行,唯独一个add 的不行(我的云函数中不止add函数),并返回提示:

问题是我将 env 直接改成 B环境的ID ssssssssssssssssss 又可以正常执行。

1 回复

https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/init.html  这里你使用wx-server-dk的版本旧了,老版本还没支持使用cloud.DYNAMIC_CURRENT_ENV   来获取云函数下的当前环境,这样你传的env就是undefined,env:undefined实际上是会取你的默认环境(应该就是你之前那个资源到期的环境),所以才导致的问题

回到顶部