让我们首先说我有一些Azure Functions
使用 C# 的经验,但这是我第一次使用Node.js
on Azure Functions
。所以,这可能是一个新手问题,也可能根本不是一个合适的问题。
我使用Node.js开发了几个函数(版本: 2.x)并将它们部署为 Azure Functions。除了依赖于Firebase
在我的函数相应文件夹上的index.js文件中,我声明了这些依赖项:
// Firebase App (the core Firebase SDK) is always required and must be listed before other Firebase SDKs
var firebase = require("firebase/app");
// Add the Firebase products that you want to use
require("firebase/firestore");
然后,在package.json文件中,我有以下内容dependencies
(我只粘贴了相关部分):
" ": {},
"devDependencies": {
"firebase": "7.6.1"
}
这在本地运行良好。我可以毫无问题地在本地运行和调试它,但是一旦我在 Azure 上部署它,如果我run
手动或使用触发器(在本例中为Timer 触发器),我会收到以下错误:
Result: Failure
Exception: Worker was unable to load function NotifySpToUpdateCapacity: 'Error: Failed to load gRPC binary module because it was not installed for the current system
Expected directory: node-v57-win32-ia32-unknown
Found: [node-v72-win32-x64-unknown]
This problem can often be fixed by running "npm rebuild" on the current system
Original error: Cannot find module 'D:\home\site\wwwroot\node_modules\grpc\src\node\extension_binary\node-v57-win32-ia32-unknown\grpc_node.node''
Stack: Error: Failed to load gRPC binary module because it was not installed for the current system
Expected directory: node-v57-win32-ia32-unknown
Found: [node-v72-win32-x64-unknown]
我的理解是无法找到该gRPC
模块。另外,我知道它没有被找到,因为它不在预期的目录中,但是......
我怎样才能解决这个问题?我需要更改或执行哪些操作才能使其找到正确的目录或安装正确的依赖项?
此外,我在我的 CI 管道中添加了一个“npm 重建”,正如一些帖子中所建议的那样,但它似乎并不能解决我当前的情况。我也尝试将 Node 版本从 ~10 更改为 ~8,但我不确定我是否生效。我需要一些帮助,或者是否有人可以指出我正确的方向。