我正在使用 Cloud Functions for Firebase 来:
- 从 api.ai 接收参数
- 调用第三方 API 并
- 回复 api.ai。
我对第三方 API 的调用使用了请求 Node.js 模块,并且包装getInfoFromApi()
在 index.js 中的函数 ( ) 中。
我遇到的问题是辅助函数调用的执行始终需要 15-20 秒。注意:云函数本身在 400 毫秒范围内始终如一地完成其执行。
通过将简单的注释记录到控制台,我可以看到函数何时启动、何时调用辅助函数以及何时收到第三方的响应,所以我想我可以看到发生了什么。
大致来说,时间安排是这样的:
- 0:云函数初始化
- 400 毫秒:云功能完成
- 16 秒:
getInfoFromApi()
函数被调用 (!) - 17s:第三方API返回结果
我的问题:
- 调用辅助函数的延迟是否有明显的原因?这似乎不是由冷启动问题引起的,因为云功能迅速恢复活力,即使在重复调用后延迟也是一致的。
- 使用“请求”节点模块是否会导致问题?是否有更好的模块来创建/管理来自云功能的 http 请求?
您可以在此处查看 index.js 的简化要点:https ://gist.github.com/anonymous/7e00420cf2623b33b80d88880be04f65
这是 Firebase 控制台的截图,显示了示例时间。注意:输出与上面的代码略有不同,因为我简化了上面的代码以帮助理解。