当前位置: 首页 > article >正文

微信小程序云开发报错

微信小程序云开发报错

起因是云开发报了个错误:

fail: Error: cloud.callFunction:fail Error: errCode: -501000  | errMsg: [100003] env not exists (f8c78dea-9f77-43cf-9e7f-88c85f2a0795) (callId: 1701747734223-0.895078767368265) (trace: 11:42:14 start->11:42:14 system error (Error: errCode: -501000  | errMsg: [100003] env not exists (f8c78dea-9f77-43cf-9e7f-88c85f2a0795)), abort)
at N (WASubContext.js?t=wechat&s=1701739226681&v=2.25.1:1)
at WASubContext.js?t=wechat&s=1701739226681&v=2.25.1:1

解决办法

不过想了半天,这玩意为啥会报错呢,而且看上去就是云环境不存在,这不奇怪了吗。翻了翻 f8c78dea-9f77-43cf-9e7f-88c85f2a0795 这种东西在云开发里边好像也没有,可能在那个日志收集里边有吧,不过那个要单独收费,还是不尝试了。

分析了半天突然想起来,这个是不是跟当前的云环境使用的是共享环境有关。看了一眼,嗯。。。未配置环境。

请添加图片描述

赶紧又打开了云开发面板。

请添加图片描述

我的环境为空,虽然说已经创建共享了,但是我的环境默认还是空的。感觉此处应该有一个神奇的配置。先翻翻文档去吧。

经过来回来去反复跳转之后发现了这么个文档。

里边有一句话 如果是跨账号环境共享的场景(使用其他微信云开发的资源),必须使用 new wx.cloud.Cloud 新建实例使用。

那么好了应该就是这里出的问题了。按照文档上的示例代码。

const a = new wx.cloud.Cloud({
  resourceEnv: 'a',
  traceUser: true,
})
await a.init()

// 可以调用云开发 API 访问云资源了,如
const res = await a.callFunction({
  name: 'test',
  data: {
    // ...
  },
})

仿佛还是不行,有看了看其他的问题,发现她这个里边好像还能有另外一个参数 resourceAppid

const a = new wx.cloud.Cloud({
  resourceEnv: 'a',
  resourceAppid: 'wxa', // 主环境的小程序ID
  traceUser: true,
})
await a.init()

// 可以调用云开发 API 访问云资源了,如
const res = await a.callFunction({
  name: 'test',
  data: {
    // ...
  },
})

这样终于可以了,然后想部署一下试试吧,嗯。。。好像在当前被共享环境的小程序上还推不上去。。。嗯。。。然后,换成主环境小程序成功了。

思考

当前的情况是小程序A的开发环境共享给了小程序B,当小程序B需要使用A的云开发环境的时候,就不能像小程序A那样直接使用了,需要使用新建的环境来调用云函数。
而且现在小程序B也不能直接部署云函数了,都必须要通过小程序A来操作了,这个功能的使用场景还是收紧了。不过对于我们来说充充充能解决的问题都解决不了。还是要尽量可这一个用吧。

不过小程序云开发的这个部署也是真的是有点随意,手残还是很容易导致线上事故的。
翻了翻发现了个版本控制,感觉上线的时候先新建一个版本,然后把流量都放到那个版本上,后续再上线再修改流量使用版本,这样操作比较稳妥。


http://www.kler.cn/a/158155.html

相关文章:

  • Native API 在 HarmonyOS 应用工程中的使用指导
  • Leetcode 2949. Count Beautiful Substrings II
  • mapbox实现框选要素
  • 10倍提升启动的时间?Graalvm打包Springboot+MyBatis实测
  • 珠海市第四届职业技能大赛成功举办,开源网安提供全程技术支持
  • 基于Spring,SpringMVC,MyBatis的高校大学社团系统
  • ESP32 LVGL Gui-Guider的移植
  • Linux 进程优先级
  • 国防科技大博士招生入学考试【50+论文主观题】
  • 【源码解析】聊聊线程池 实现原理与源码深度解析(二)
  • python 自动发送邮件
  • Spring Security OAuth2 自定义(增强)token信息
  • AR技术详解
  • 为XiunoBBS4.0开启redis缓存且支持密码验证
  • 生产实践:基于K8S的私有化部署解决方案
  • “谢湖大樱桃”区域公用品牌形象正式发布
  • leetcode算法之栈
  • YOLOv3 快速上手:Windows 10上的训练环境搭建
  • RHCSA学习笔记(RHEL8) - Part1.RH124
  • 12、SQL注入——SQL报错注入