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

如何通过Terraform自动将Azure专用端点注册到专用DNS区域

实现Azure存储账户专用端点DNS记录自动注册

问题描述

我已创建名为privatelink.file.core.windows.net的专用DNS区域,且该区域已链接到目标虚拟网络。通过Terraform创建存储账户及对应专用端点后,发现资源未自动注册到该专用DNS区域,目前只能手动创建专用DNS A记录,如何配置实现自动注册?

现有Terraform代码

存储账户创建代码

resource "azurerm_storage_account" "st" {
    name = var.st.name
    resource_group_name = var.rg_shared_name
    location = var.rg_shared_location
    account_tier = var.st.tier
    account_replication_type = var.st.replication
}

专用端点创建代码

# PRIVATE ENDPOINT FOR STORAGE ACCOUNT
resource "azurerm_private_endpoint" "pe" {
    name = var.pe.name
    resource_group_name = var.rg_shared_name
    location = var.rg_shared_location
    subnet_id = var.subnet_id

    private_service_connection {
      name = "test"
      private_connection_resource_id = azurerm_storage_account.st.id
      is_manual_connection = false
      subresource_names = ["file"]
    }
}

手动创建DNS记录代码

resource "azurerm_private_dns_a_record" "st_fqdn" {
  name = azurerm_storage_account.st.name
  zone_name = "privatelink.file.core.windows.net"
  resource_group_name = "rg-hub-shared-core-dns-uks-001"
  ttl = 300
  records = ["172.17.208.4"]
}

自动注册实现方案

要实现专用端点DNS记录自动注册,需在azurerm_private_endpoint资源中添加private_dns_zone_group配置块,将专用端点与已有的专用DNS区域关联。具体修改步骤如下:

1. 引用已存在的专用DNS区域

先通过数据源获取已创建的专用DNS区域信息:

data "azurerm_private_dns_zone" "file_zone" {
  name                = "privatelink.file.core.windows.net"
  resource_group_name = "rg-hub-shared-core-dns-uks-001" # DNS区域所在资源组
}

2. 修改专用端点代码添加DNS关联块

更新后的专用端点代码如下:

# PRIVATE ENDPOINT FOR STORAGE ACCOUNT
resource "azurerm_private_endpoint" "pe" {
    name = var.pe.name
    resource_group_name = var.rg_shared_name
    location = var.rg_shared_location
    subnet_id = var.subnet_id

    private_service_connection {
      name = "test"
      private_connection_resource_id = azurerm_storage_account.st.id
      is_manual_connection = false
      subresource_names = ["file"]
    }

    # 新增此块实现DNS自动注册
    private_dns_zone_group {
      name = "storage-dns-group" # 自定义DNS组名称
      private_dns_zone_ids = [data.azurerm_private_dns_zone.file_zone.id]
    }
}

3. 移除手动DNS记录资源

配置完成后,Azure会自动生成并注册专用端点的A记录到指定DNS区域,无需再保留手动创建的azurerm_private_dns_a_record资源。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 08:15:34