如何将Azure Function App与VNet集成以访问受限Azure Data Lake Storage
解决方案
方案1:配置Function App虚拟网络集成(推荐)
无服务器Consumption计划目前支持区域虚拟网络集成(部分区域可用),Premium/Elastic Premium计划全支持。通过将Function App接入ADLS允许的虚拟网络,让其流量从该VNet发出,从而被ADLS防火墙放行:
- 进入Function App的「网络」→「虚拟网络集成」页面
- 选择要集成的目标VNet和空闲子网(子网需未被其他服务占用,且无需自定义路由)
- 完成集成后,在ADLS账户的「防火墙和虚拟网络」设置中,将该VNet添加到允许访问的列表
方案2:使用托管标识+专用/服务端点
通过托管标识替代连接字符串认证,同时配合ADLS的专用端点或服务端点实现安全访问:
- 给Function App启用系统分配托管标识(或用户分配标识):进入Function App的「标识」页面,开启系统分配标识
- 在ADLS账户的「IAM」页面,给该托管标识分配「存储Blob数据参与者」角色(按需调整权限)
- 配置ADLS的网络访问:
- 若使用服务端点:在目标VNet的子网中开启
Microsoft.Storage服务端点,然后在ADLS防火墙设置中允许该子网 - 若使用专用端点:给ADLS账户创建专用端点,关联到目标VNet,再将Function App集成到该VNet,确保Function通过专用端点访问ADLS
- 若使用服务端点:在目标VNet的子网中开启
方案3:添加Function出站IP到ADLS允许列表(临时应急)
无服务器Function的出站IP是动态的,但可以获取所有可能的IP范围,添加到ADLS防火墙:
- 进入Function App的「属性」页面,复制「出站IP地址」列表(包含所有可能的出站IP)
- 在ADLS账户的「防火墙和虚拟网络」设置中,将这些IP逐一添加到允许的IP地址范围
- 注意:该方案不推荐长期使用,因为Function的出站IP可能随平台更新变化,需定期核对更新
内容的提问来源于stack exchange,提问作者Venkatesh
相关产品推荐
相关产品推荐

