使用 wx.cloud.callContainer 访问本地docker容器 的问题
发布于 3 年前 作者 songgang 1640 次浏览 来自 分享

先总结:

  1. 环境id要填线上环境id。
  2. X-WX-SERVICE要填weixin cloudbase containers里的要调用的容器名称
  3. callContainer请求服务时,如果第一次请求服务报错了比如404之类的错误,接着用callContainer请求同一个接口,callContainer不会发起请求,而是给小程序前端直接返回 INVALID_PATH 的错误码和serviceName not exit的错误消息。在callContainer里加上apiVersion:2 的参数可以规避2次及以上的重复调用直接报INVALID_PATH的问题

官方文档 https://developers.weixin.qq.com/miniprogram/dev/wxcloudrun/src/guide/debug/

昨天callcontainer调本地的docker服务时,一直有问题调不通。最后排查出问题:

1.官方文档只提到X-WX-SERVICE要与容器名相同,一开始试了wx-cloudbase里的容器名称,发现有问题,一直报INVALID-PATH,envdbid无效,以为是X-WX-SERVICE填错了。

后面改成docker ps 里names的名字,还是报错

于是还想是不是环境id有问题。试了各种环境id等。

今天从官方微信群得知环境id是要填 云托管里的 线上环境id的,于是后试了下X-WX-SERVICE用wx-cloudbase的容器名称,这次发现第一次callcontainer调用本地容器日志显示是接受到请求的,但是后面又没有请求记录了。感觉这里面有问题。重新加载模拟器,又复现了问题。原来是callcontainer请求的接口,服务报了错误后,继续调用同一个接口时,callcontainer不会再向服务发送请求了,而是直接给小程序报”INVALID_PATH“的错误码,也是这个原因让我一直以为是X-WX-SERVICE填错了。

后面把参数改正确,就可以正常调用了

回到顶部