今天遇到个问题,在使用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版本

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐