如何获取Azure App Service访问Azure SQL Server的稳定IP以配置防火墙规则
嗨,我来帮你解决这个问题!你遇到的情况其实挺常见的——那些临时出站IP确实不靠谱,因为当App Service计划出现缩放、实例重启或者Azure后台维护时,这些IP很可能会发生变化,导致第二天连接失效。下面给你几个稳定的解决方案,按需选择就行:
使用App Service计划的专用出站IP地址
每个App Service计划(基本层及以上)都会分配固定的专用出站IP,这些IP不会因为常规的应用重启、缩放操作而改变,只要你不删除整个App Service计划,它们就一直有效。
查找方法很简单:进入你的App Service后台,点击左侧导航栏的「网络」,在页面下方的「出站流量」板块里,就能看到「专用出站IP地址」列表。把这些IP全部添加到Azure SQL Server的防火墙规则里,就能稳定访问了。配置虚拟网络集成(VNet Integration)
这个方法更侧重安全性,把你的App Service接入到虚拟网络中,然后让SQL Server允许来自该虚拟网络子网的流量,完全不用依赖公网IP。
操作步骤:- 进入App Service的「网络」页面,找到「虚拟网络集成」选项,配置连接到你的目标虚拟子网;
- 转到Azure SQL Server的防火墙设置,添加一条「虚拟网络规则」,选择对应的虚拟网络和子网即可。
这样App Service和SQL Server就通过虚拟网络内部通信,再也不用担心IP变化的问题。
使用专用端点(Private Endpoint)
如果你的App Service用的是Premium定价层,还可以给App Service创建专用端点,让它和SQL Server都在虚拟网络内建立私有连接,全程不走公网,安全性拉满。不过这个方案需要对应的定价层支持,成本会高一些。
另外补充一下:你之前用的「出站IP地址」属于临时出站IP,是Azure为App Service动态分配的,会随着服务的运行状态变化,所以不能用来做长期的防火墙规则配置。
备注:内容来源于stack exchange,提问作者GilShalit

