如何配置Azure Function使其始终向第三方服务呈现IPv4地址?
解决Azure Function通过VNet集成调用第三方服务时强制使用IPv4的问题
问题原因
启用VNet集成的Azure Function(属于App Service家族)默认同时支持IPv4和IPv6出站请求。当第三方服务的DNS解析同时返回IPv4(A记录)和IPv6(AAAA记录)地址时,系统会优先选择IPv6发起请求,这就导致对方收到的是IPv6地址,而非你配置的NAT网关静态IPv4。
解决方案
按以下步骤修改配置,确保出站请求始终使用IPv4:
禁用Function App的IPv6支持
- 登录Azure门户,找到目标Function App
- 进入「配置」→「常规设置」页面
- 找到「IPv6 启用」选项,设置为「关闭」并保存
添加应用设置强制IPv4优先
在Function App的「配置」→「应用程序设置」中添加以下两个键值对:- 键:
WEBSITE_PREFER_IPV4_STACK,值:true - 键:
WEBSITE_DNS_SERVER,值:168.63.129.16
添加完成后保存设置,Function App会自动重启生效。
- 键:
确认NAT网关与子网的关联配置
- 检查NAT网关是否已正确关联到Function App集成的子网
- 确认子网的路由表中,所有出站流量(0.0.0.0/0)的下一跳是NAT网关,没有其他冲突的路由规则
验证修改
修改完成后,再次调用https://httpbin.org/ip测试,同时让第三方服务确认收到的请求IP是否为NAT网关的静态IPv4地址。
内容的提问来源于stack exchange,提问作者Rob Bowman
相关产品推荐
相关产品推荐

