azure-storage不能与web pack(azure-functions-pack)服务器端

时间:2017-11-01 18:36:30

标签: node.js npm webpack azure-storage azure-functions

我使用Node.js创建了Azure Function微服务,并且我使用npm模块azure-storage在Blob存储中插入文件。

本地工作正常,但在部署到开发环境时,会执行一个执行azure-functions-pack的脚本,并生成一个包含服务代码和所有必需的npm模块的包。然后,当向微服务发出请求时,它返回状态代码500,并且在日志中错误如下:

System.Exception : Error: Cannot find module "."
at webpackMissingModule (D:\home\site\wwwroot\.funcpack\index.js:238044:68)
at Object.<anonymous> (D:\home\site\wwwroot\.funcpack\index.js:238044:147)
at __webpack_require__ (D:\home\site\wwwroot\.funcpack\index.js:21:30)
...

我只知道问题是azure-storage模块,因为如果我评论&#34; azureStorage = require(&#39; azure-storage&#39;);&#34; ,然后开始工作。我也尝试了npm模块fast-azure-storage没有成功,直到现在我还没能找到解决这个问题的方法。使用此模块的代码如下:

    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();
    });

azure-storage的版本是2.6.0。谢谢你的帮助。

2 个答案:

答案 0 :(得分:1)

不能直接回答您的问题 - 但您应该使用Azure功能的输出绑定功能来插入Blob,而不是使用库调用手动执行。

如果您这样做,则无需导入包,因此它也可以解决您的问题。

docs中阅读有关输出绑定的更多信息,还有一个节点示例。

答案 1 :(得分:1)

实际上问题不在于azure-storage模块,而是由于某种原因导致其他模块出现问题的节点图表模块。删除节点图表后,所有模块都开始正常工作。