首页 > 解决方案 > 谷歌云函数和 Redis:ECONNRESET

问题描述

有谁知道为什么我在使用 ioredis 模块时不断从云功能(谷歌云功能)中得到这个错误?

[ioredis] 未处理的错误事件:错误:在 TLSWrap.onread (net.js:628:25) 的 _errnoException (util.js:1022:11) 处读取 ECONNRESET

错误日志示例 错误永远不会停止。它不会影响正常操作(意思是,我可以使用 ioredis 模块和我的 redis 执行所有需要的操作)。它非常令人讨厌,并且无法调试云功能性能。

注意:在 Microsoft Azure 上使用 redis 缓存(尽管我也尝试在 google 计算上使用自我管理的 redis),高级层。

我怀疑这一定与我如何实例化 redis/导入它有关。我只在一个文件 utils/index.ts 中使用它,并且像这样实例化它:

const redis = new Redis(6380, 'myredis.redis.cache.windows.net', { tls: true as any, password: 'azuresucks=' });

我尝试过 no-TLS,创建新的缓存,以及几乎所有我能想到的东西。任何对 ioredis 及其与云功能的兼容性有深入了解的人,请帮助!m 注意:我实际上已经尝试过使用 node_redis 与 ioredis - 仍然有这个问题。

utils/index.ts 编辑:来自https://gist.github.com/nicoandmee/c38d2b014b4377a4f386a0a0ae9a85e5的完整示例代码 这是我的“index.ts”,这是我的入口点(我正在导出实际的 firebase 函数)。 https://gist.github.com/nicoandmee/6e1d7d319effa1f23141b7148e3459c7

这是我说它不影响正常操作时的意思的一个例子。在这里我的函数成功执行,但错误仍然不断弹出,几秒钟后。我的代码运行良好,但由于 ECONNRESET 的所有这些垃圾邮件都被抛出,我几乎无法判断。也许有一种方法可以抑制这个错误/处理它?因为它不会影响我的代码。 示例 2

标签: redisgoogle-cloud-platformgoogle-cloud-functionsconnection-poolingioredis

解决方案


推荐阅读