我正在尝试解决问题。我必须从 Azure 托管的 Web API 访问托管在本地服务器 (on-prem) 上的 API。
问题是我的本地服务器仅允许列入白名单的 IP。我知道我们可以从我们的 Web 应用程序(Azure 托管)获取出站 IP。但我不确定它们是静态的还是会根据缩放而改变。
另一个解决方案是创建 VNET 并将该 Web 应用程序添加到该 VNET 中。但我希望有人提出更好的解决方案。
最佳答案
您有几个选择。
首先,您可以查看应用服务的possibleOutboundIpAddress
并将该 IP 列入白名单。然而,这也为您的应用服务未真正使用的 IP 打开了大门。
az webapp show --resource-group <group_name> --name <app_name> --query possibleOutboundIpAddresses --output tsv
其次,您可以在应用服务前面放置一个 NAT 网关。但是,这需要支持虚拟网络集成的应用服务计划。
- 在您的应用服务内配置区域虚拟网络集成。
- 强制源自该应用的所有出站流量都通过虚拟网络传输。这是通过在网络应用配置中设置 WEBSITE_VNET_ROUTE_ALL=1 属性来完成的
- 创建公共(public) IP 地址。
- 添加 NAT 网关,将其附加到包含应用服务的子网,并使用第 3 步中创建的公共(public) IP。
如果您还想使用静态入站 IP,您可以找到更多信息 here
关于Azure Web应用程序静态出站 IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57788364/