配置Azure App Service对MongoDB集群的网络访问



我正在尝试配置MongoDB集群的网络访问,以允许从Azure应用程序服务连接。我在Azure门户中找到了我的应用程序服务的出站IP地址(参见Azure文档)。并根据MongoDB Atlas文档将其输入IP访问列表。我附加了"/32"将IP地址设置为只允许一个主机(CIDR表示法)。

然而,当尝试连接应用程序服务启动时,我得到一个错误指示检查MongoDB集群的IP白名单。

这实际上似乎是问题所在,因为添加0.0.0.0/0(允许从任何地方访问)解决了问题。

这里可能有什么问题?

我仔细检查了Azure App Service的出站IP地址和MongoDB集群的IP访问列表。

我所做的确实是另一个问题的答案,所以我想我错过了什么…

实际上/32在Azure中不是有效的CIDR。单个VNET的最小大小为/29。这将限制你的范围只有3个ip(而不是你期望的8个),因为Azure将保留前四个ip和最后一个用于内部路由。

还请考虑,如果您在私有网络中运行MongoDB集群,并且它没有通过网络设备(如应用程序网关,负载平衡器,前门或流量管理器)对外暴露,则需要在Azure Web应用程序端启用VNET集成。

如果这是你的情况,在门户中浏览你的应用程序,然后进入"网络"。刀片。这里您可以添加VNET Integration,但是您应该考虑在这种情况下,您的子网的最小大小只能是/28(您不能添加更小的子网)

我只添加了"出站IP地址"中列出的IP地址。我的Azure应用服务的属性。添加"其他出站IP地址"中列出的IP地址后属性,并且App Service成功连接到MongoDB集群。

这让我有些惊讶,因为关于出站ip更改的文档说"…当您执行以下操作之一时,您的应用程序的出站IP地址集发生变化:

  • 删除一个应用,并在不同的资源组中重新创建它(部署单元可能会改变)
  • 删除资源组和区域组合中的最后一个应用并重新创建它(部署单元可能会更改)。
  • 在较低层次(基本,标准和高级),PremiumV2和PremiumV3层之间扩展您的应用程序(IP地址可以从集合中添加或减少)。

…">

上述操作均未发生。🙄

最新更新