我使用Node.js创建了Azure函数微服务,并使用npm模块azure存储将文件插入到Blob存储中。
本地运行良好,但是当部署到开发环境时,它会执行一个脚本,该脚本执行azure函数包,并使用服务代码和所有所需的npm模块生成包。然后,当向微服务发出请求时,它返回状态代码500,在日志中错误如下:
System.Exception :错误:找不到模块“。(D:\home\site\wwwroot.funcpack\index.js:238044:68) at webpackMissingModule at Object。(D:\home\site\wwwroot.funcpack\index.js:238044:147) at __webpack_require__ (D:\home\site\wwwroot.funcpack\index.js:21:30) ..。
我只知道问题是天蓝色存储模块,因为如果我评论"azureStorage =require(‘azure-storage’)“,那么就开始工作了。我也尝试了npm模块快速天蓝色存储,但没有成功,直到现在,我无法找到解决这个问题的办法。使用此模块的代码如下:
const blobSvc = azureStorage.createBlobService(storageConnectionString);
const writeStream = blobSvc.createWriteStreamToBlockBlob('containerName', fileName);
return new Promise(function (resolve) {
writeStream.write(svgString);
writeStream.on('close', () => {
resolve('https://' + storageAccount + '.blob.core.windows.net/containerName/' + fileName);
});
writeStream.end();
});天蓝色存储器的版本为2.6.0.谢谢你的帮助。
发布于 2017-11-01 19:20:27
不是直接回答您的问题--但是您应该使用Azure函数的输出绑定特性来插入Blobs,而不是手动使用库调用。
如果您这样做,您将不必导入包,因此它也将解决您的问题。
阅读关于文档中输出绑定的更多信息,这里也有一个节点示例。
发布于 2017-11-02 15:12:43
实际上,问题不在于存储模块,而是节点字符模块,由于某种原因,它在其他模块中也造成了问题。删除节点字符后,所有模块都开始完美地工作。
https://stackoverflow.com/questions/47061514
复制相似问题