【问题标题】:Google Cloud Function cannot connect to RedisGoogle Cloud Function 无法连接到 Redis
【发布时间】:2018-11-03 17:21:18
【问题描述】:

我们有一个 Google Cloud Function 尝试连接到位于 Compute Engine 实例上的 Redis 服务器。 Compute Engine Redis 端口已打开,可以从我们的本地计算机连接到 Redis 服务器。尽管如此,当 Cloud Function 尝试这样做时,它会收到以下错误:

Redis 与 35.xxx.xx.xx:6379 的连接失败 - 在 exports._exceptionWithHostPort (util.exports._errnoException (util.js:1020:11) 处连接 ETIMEDOUT 35.xxx.xx.xx:6379) js:1043:20) 在 TCPConnectWrap.afterConnect [as oncomplete] (net.js:1105:14) 代码:'ETIMEDOUT',errno:'ETIMEDOUT',系统调用:'connect',地址:'35.xxx.xx。 xx',端口:6379 }

我们正在使用 redis npm 包(Redis 节点客户端)进行连接,该包再次在我们的本地计算机上工作。

我们将 EC 服务器的 IP 传递给 host 值,并将身份验证秘密传递给 password 值。同样,这似乎在本地工作。

有什么想法吗?

【问题讨论】:

  • 您的 Firebase 项目是否采用付费计划?还是在免费的 Spark 计划中?
  • 随用随付,所以没问题。这可能与防火墙有关。

标签: node.js redis google-cloud-platform google-cloud-functions


【解决方案1】:

毕竟,这确实是一个防火墙问题。我们没有正确的服务帐户设置。

需要访问firewall rules 配置页面并添加适当的源过滤器(或第二源过滤器)以输入服务帐户并添加云功能的服务帐户。

【讨论】:

  • 很高兴听到您找到了问题的原因,感谢您的自我回答。有什么方法可以更新您的答案以包括您必须做的配置?这类信息对于遇到相同问题的其他开发人员非常有用。
  • 请包含您的新规则的“等效 REST 响应”(如果您愿意,请减去 id 和其他敏感信息)。
  • 是的,如果可以的话,请添加 REST 响应。
【解决方案2】:

GCP 已发布“无服务器 VPC 访问”测试版,以使用内部 IP 从 Cloud Functions 连接计算引擎虚拟机。关注tutorials here

【讨论】:

    猜你喜欢
    • 2020-01-23
    • 2019-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 2013-06-15
    相关资源
    最近更新 更多