uniCloud云函数本地调用正常,调用云端就报错:[aicloudsop]: “listener“ argument must be a function
·
今天遇到个问题,在使用aicloudsop云函数时,连接云端突然报了个错误:[aicloudsop]: "listener" argument must be a function:

捣鼓了很久很郁闷,本地云函数跑的好好的,一切换到云端就报错,而且此云函数已经上传到云端了!
最后发现原因是这样的:
1.云函数/云对象里可能对nodejs版本有要求,可能依赖高版本的某些功能,我本地Nodejs版本是Node14, 而云函数/云对象里如果不配置,云端默认是Nodejs8:

所以本地调用是没问题的,切换到云端云函数就会报错!而且这里还不能直接改,就很难受
2.那如何修改云端运行环境的Nodejs版本呢?去uniCloud官网查了API,发现要在云函数的package.json里配置,如下图:

3.配置云函数的cloudfunction-config字段:

可以看到,此云函数里未配置 cloudfunction-config字段,配置后如下图:

"cloudfunction-config": {
"memorySize": 512,
"timeout": 30,
"path": "",
"runtime": "Nodejs12"
}
切记必须上传部署!必须上传部署!必须上传部署!
然后再看下云端配置,已经改为Nodejs12了:

此时连接云端云函数就可以正常调用了,如果不行,就重新启动下服务即可。
最后附上官网API地址:uniCloud云函数package.json配置Nodejs版本
更多推荐



所有评论(0)