情况说明:
一个项目有两个云环境: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 又可以正常执行。
https://developers.weixin.qq.com/miniprogram/dev/wxcloud/guide/init.html 这里你使用wx-server-dk的版本旧了,老版本还没支持使用cloud.DYNAMIC_CURRENT_ENV 来获取云函数下的当前环境,这样你传的env就是undefined,env:undefined实际上是会取你的默认环境(应该就是你之前那个资源到期的环境),所以才导致的问题