首页 > 解决方案 > 尝试为我的 Firebase 云功能设置 VPC 以使用专用 IP 地址时出现意外错误

问题描述

我正在使用 Firebase 云功能作为我的应用程序的后端,并且我想使用 VPC 为我的云功能设置一个专用 IP 地址,因为我还需要与 Mongo Atlas DB 交互并希望将单个 IP 地址列入白名单它可以接收请求作为安全措施。根据 Firebase 文档(https://cloud.google.com/functions/docs/networking/network-settings#associate-static-ip),使用 VPC 的解决方法似乎可以做到这一点。

对我来说,这是一个非常模糊和不确定的编程领域,所以我正在使用我认为文档告诉我的内容取得进展。

  1. 设置 VPC。我使用手动设置来做到这一点。当您设置 VPC 并创建新子网时,它要求您输入一个必须有效的 IP 地址范围。根据此文档 ( https://cloud.google.com/vpc/docs/vpc#manually_created_subnet_ip_ranges#subnet-ranges ),IP 地址范围 10.0.0.0/8 是有效的 IP 范围。我将此范围用于我的 VPC 子网。

注意:我尝试了该文档中的其他 IP 地址,但它们无效并引发错误

这就是我卡住的地方 vvvvvvv 2) 下一步是设置 VPC 无服务器访问连接器。我开始这样做。这也需要我定义一个 IP 范围。根据本文档(https://cloud.google.com/vpc/docs/configure-serverless-vpc-access?&_ga=2.204931472.-1046973627.1608007278#creating_a_connector),范围 10.8.0.0 (/28) 将在大多数新项目。” 但是,当我使用此范围并创建 VPC 无服务器访问连接器时,我收到一条错误消息:“连接器处于错误状态,建议手动删除”(见下文)。

在此处输入图像描述

同样,我的最终目标是拥有一个可以连接到 Mongo 实例的 IP 地址。我想我这样做是正确的,但可能是错误的。如何从这一步继续并消除我收到的错误?我在初始设置中做错了吗?同样,最终目标是获得一个 IP 地址,我可以从中将 Firebase 云功能连接到 MongoDB,这样我就可以将该 IP 地址列入 Mongo 的白名单作为安全措施。谢谢你。

更新 我的 VPC 和子网的屏幕截图 在此处输入图像描述

标签: firebasegoogle-cloud-platformgoogle-cloud-functionsvpc

解决方案


您无法创建无服务器 VPC 连接器的原因是您的 VPC 的 CIDR 和连接器的 CIDR 不能重叠。

这在这里有很好的记录:

[IP_RANGE] 是一个未预留的内部 IP 网络,需要 '/28' 的未分配空间。提供的值是 CIDR 表示法 (10.8.0.0/28) 中的网络。此 IP 范围不得与您的 VPC 网络中的任何现有 IP 地址预留重叠。例如,10.8.0.0/28 适用于大多数新项目。

在您的 VPC 无服务器连接创建中,您省略了最重要的部分

此 IP 范围不得与您的 VPC 网络中的任何现有 IP 地址预留重叠。

“范围 10.8.0.0 (/28) 将适用于大多数新项目。” 这是真的,但“大多数”并不意味着“全部”,因此您应该始终检查您的设置。

由于您10.0.0.0/8的 VPC 中有 CIDR,因此 CIDR10.8.0.0/28与 VPC CIDR 重叠,因此正如@guillaume-blaquiere 在评论中所建议的那样,CIDR192.168.0.0/28将起作用。


推荐阅读