首页 > 解决方案 > 无法使用无服务器 VPC 访问设置 Google Cloud Memorystore redis 实例

问题描述

我想设置一个 Google Cloud memorystore redis 实例并通过我的 google cloud 功能连接到它。遵循本指南https://thecloudfunction.com/blog/firebase-cloud-functions-and-redis/

据我了解,一般步骤是:

  1. 启用无服务器 VPC 服务并创建一个连接器供我的函数使用。
  2. 启用 redis 并在同一 IP 地址范围内创建 redis 实例。

问题是,如果我先创建连接器(步骤 #1),然后在尝试创建 redis 实例时出现此错误(步骤 #2):

Server response: Invalid value for field 'resource.ipCidrRange': '10.92.0.0/28'. Invalid IPCidrRange: 10.92.0.0/28 conflicts with peer network in active peering 'redis-peer-863826821838'.

如果我尝试翻转这些步骤,请先创建 redis 实例(步骤 #2),然后创建连接器(步骤 #1),然后在尝试创建连接器时出现此错误:

connector is in a bad state manual deletion recommended

我认为这是每个第一个错误的一些 IP 范围冲突的问题,但是查看 VPC 连接我在任何地方都没有看到冲突:

在此处输入图像描述

据我了解,这些都不应该与我的 IP 范围冲突10.92.0.0/28,对吧?

这一切都发生在us-central1

想知道是否有人知道如何正确设置 redis 实例 + 连接器并克服这些错误,或者是否有人对在哪里查找此 IP 范围冲突以及如何解决它有任何建议。

谢谢!

标签: google-cloud-platformredisgoogle-cloud-functionsgoogle-cloud-memorystore

解决方案


好的,所以终于让它工作了。对于其他在这个问题上苦苦挣扎的人来说,这是我必须做的:

  1. 创建一个 redis 实例,而不是手动输入Instance IP address range. 跳过该字段并在没有字段的情况下创建它。这将生成一个不与任何其他范围冲突的 redis 实例。例如10.51.123.233
  2. 现在创建连接器并将其设置为创建的 redis 实例的 ip 范围。例如,如果您的 redis 实例生成了一个 IP,10.51.123.233那么您需要将连接 IP 范围设置为10.51.0.0/28

推荐阅读