我有一个 Node.js 中的 Azure Function 应用程序,其中包含几个队列触发的函数。
这些工作得很好,直到我在函数日志中看到一些超时。
从那时起,我的触发函数实际上都没有执行任何操作。他们只是在执行第一行代码之前不断超时,这是一个用于显示执行时间的context.log()
语句。
这可能是什么原因造成的?
最佳答案
在 Azure 门户中检查您的函数存储帐户,您可能会看到文件监控事件非常高。
这可能是由于 Azure 文件之间的交互以及需要大型 node_modules
树造成的。一旦需要模块一次,函数将快速执行,因为模块被缓存,但这些超时可能会使函数应用程序陷入超时 -> 重新启动循环。
对此有很多讨论,以及一个可能的改进(在服务器端模块上使用 webpack)here .
其他可能性:
- 如果可能,减少 Node 模块的数量
- 转向专用计划而不是消耗计划(它在性能更好的不同文件系统上运行)
- 使用 C# 或 F#,它们不受这些限制
关于node.js - Azure Functions 未执行任何操作就超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42052705/