firebase - 尝试为我的 Firebase 云功能设置 VPC 以使用专用 IP 地址时出现意外错误
问题描述
我正在使用 Firebase 云功能作为我的应用程序的后端,并且我想使用 VPC 为我的云功能设置一个专用 IP 地址,因为我还需要与 Mongo Atlas DB 交互并希望将单个 IP 地址列入白名单它可以接收请求作为安全措施。根据 Firebase 文档(https://cloud.google.com/functions/docs/networking/network-settings#associate-static-ip),使用 VPC 的解决方法似乎可以做到这一点。
对我来说,这是一个非常模糊和不确定的编程领域,所以我正在使用我认为文档告诉我的内容取得进展。
- 设置 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 连接器的原因是您的 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
将起作用。
推荐阅读
- python - 使用 Anaconda 和 Python 3.8 64 位连接到数据库 Hive 时找不到 Java 类 HiveDriver
- kubernetes - Kubernetes 命名空间:最佳实践?
- javascript - 使用 Java Webview 在 OpenLayers 6.5 中未触发的单击事件
- java - 无法在 Spring Boot 应用程序中刷新现有的单例 bean
- python - Python如何在列表X中搜索元素Y。元素Y本身就是一个列表,其元素可能与X中列出的顺序不同
- python - 如何在单个对象中展平 SQLAlchemy 查询的结果?
- c++ - 允许通过“位索引、大小”访问多个位的 C++ 容器类型
- ios - IOS库-检索图像中对象的区域
- javascript - Leaflet.js:将地图缩放到可见标记
- javascript - 使用聚合从 Mongo 数据库中获取最新保存