You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

配置Private Endpoint后VNET内无法访问Azure Data Factory

问题根源

当你为Azure Data Factory(ADF)配置Private Endpoint后,VNET内无法访问的核心原因是缺少对应的私有DNS解析配置。Private Endpoint会为ADF分配一个VNET内的私有IP,但如果没有配置正确的Private DNS Zone并关联到VNET,VNET内的主机无法将ADF的公共域名(比如xxx.datafactory.azure.net)解析到这个私有IP,导致访问请求无法到达正确的端点。

你遗漏的关键配置

需要补充以下3部分Terraform配置,确保VNET内的DNS解析和Private Endpoint正常工作:

1. 创建ADF专用的Private DNS Zone

ADF的Private Endpoint需要使用固定的私有DNS区域privatelink.datafactory.azure.net,必须手动创建这个区域:

resource "azurerm_private_dns_zone" "adf_private_zone" {
  name                = "privatelink.datafactory.azure.net"
  resource_group_name = azurerm_resource_group.your_rg.name
}

2. 将VNET关联到Private DNS Zone

把部署Private Endpoint的VNET和上述DNS区域关联,这样VNET内的所有主机都会使用这个区域解析ADF的私有链接域名:

resource "azurerm_private_dns_zone_virtual_network_link" "adf_vnet_link" {
  name                  = "adf-vnet-link"
  private_dns_zone_name = azurerm_private_dns_zone.adf_private_zone.name
  virtual_network_id    = azurerm_virtual_network.your_vnet.id
  resource_group_name   = azurerm_resource_group.your_rg.name
}

3. 为Private Endpoint配置DNS组关联

在创建ADF的Private Endpoint时,需要添加private_dns_zone_group块,将端点和刚才创建的Private DNS Zone绑定,Azure会自动在Zone中创建ADF的DNS记录(将你的ADF域名映射到私有IP):

resource "azurerm_private_endpoint" "adf_pe" {
  name                = "adf-private-endpoint"
  resource_group_name = azurerm_resource_group.your_rg.name
  location            = azurerm_resource_group.your_rg.location
  subnet_id           = azurerm_subnet.your_subnet.id

  private_service_connection {
    name                           = "adf-private-service-connection"
    private_connection_resource_id = azurerm_data_factory.your_adf.id
    subresource_names              = ["dataFactory"] # ADF的专用子资源名称,必须是这个值
    is_manual_connection           = false
  }

  # 新增这部分DNS组配置
  private_dns_zone_group {
    name                 = "adf-dns-group"
    private_dns_zone_ids = [azurerm_private_dns_zone.adf_private_zone.id]
  }
}
额外检查项
  • 确认子网的private_endpoint_network_policies设置为Enabled(默认是Enabled,若被禁用会阻止Private Endpoint的流量):
    resource "azurerm_subnet" "your_subnet" {
      # ... 其他配置
      private_endpoint_network_policies = "Enabled"
    }
    
  • 检查ADF的public_network_access_enabled设置:如果设置为false,则只有Private Endpoint能访问ADF,此时必须确保DNS解析正常;如果设置为true,VNET内的流量会优先走Private Endpoint(依赖正确的DNS解析), fallback到公网(如果DNS解析失败)。

内容的提问来源于stack exchange,提问作者One Developer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 00:01:16