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

无现有代码时,如何用ARM模板为ADLS v2存储账户加专用终结点?

为现有ADLS v2存储账户添加专用终结点的ARM模板实现方法

1. 安全导出现有存储账户配置(避免遗漏)

直接从Azure门户导出存储账户的模板是可靠方式,操作步骤:

  • 找到目标ADLS v2存储账户,进入左侧菜单「自动化」->「导出模板」
  • 导出的模板默认包含存储账户所有现有配置(防火墙规则、虚拟网络设置等),将其保存为参考即可,无需直接用它做全量部署,仅用来核对后续自定义模板是否会影响现有配置

2. 编写增量部署的专用终结点模板

ARM默认采用增量部署模式,只会添加新资源/配置,不会覆盖现有存储账户的防火墙、网络规则等设置。以下是核心模板示例:

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "storageAccountName": {
      "type": "string",
      "metadata": {
        "description": "现有ADLS v2存储账户名称"
      }
    },
    "privateEndpointName": {
      "type": "string",
      "metadata": {
        "description": "要创建的专用终结点名称"
      }
    },
    "virtualNetworkName": {
      "type": "string",
      "metadata": {
        "description": "要关联的虚拟网络名称"
      }
    },
    "subnetName": {
      "type": "string",
      "metadata": {
        "description": "要部署专用终结点的子网名称"
      }
    },
    "resourceGroupName": {
      "type": "string",
      "metadata": {
        "description": "存储账户所在资源组名称"
      }
    }
  },
  "resources": [
    {
      "type": "Microsoft.Network/privateEndpoints",
      "apiVersion": "2023-05-01",
      "name": "[parameters('privateEndpointName')]",
      "location": "[resourceGroup().location]",
      "properties": {
        "subnet": {
          "id": "[resourceId(parameters('resourceGroupName'), 'Microsoft.Network/virtualNetworks/subnets', parameters('virtualNetworkName'), parameters('subnetName'))]"
        },
        "privateLinkServiceConnections": [
          {
            "name": "[concat(parameters('privateEndpointName'), '-connection')]",
            "properties": {
              "privateLinkServiceId": "[resourceId(parameters('resourceGroupName'), 'Microsoft.Storage/storageAccounts', parameters('storageAccountName'))]",
              "groupIds": ["dfs"] // ADLS v2对应的子资源是dfs
            }
          }
        ]
      }
    }
  ]
}

如果需要关联专用DNS区域以确保内网解析,可在resources里添加以下资源:

{
  "type": "Microsoft.Network/privateEndpoints/privateDnsZoneGroups",
  "apiVersion": "2023-05-01",
  "name": "[concat(parameters('privateEndpointName'), '/default')]",
  "dependsOn": [
    "[resourceId('Microsoft.Network/privateEndpoints', parameters('privateEndpointName'))]"
  ],
  "properties": {
    "privateDnsZoneConfigs": [
      {
        "name": "storage",
        "properties": {
          "privateDnsZoneId": "[resourceId('Microsoft.Network/privateDnsZones', 'privatelink.dfs.core.windows.net')]"
        }
      }
    ]
  }
}

3. 提前验证部署影响

部署前用az deployment group what-if命令预览变更,确认只会添加专用终结点,不会修改现有存储账户的任何配置:

az deployment group what-if --resource-group <你的资源组名称> --template-file <模板文件路径> --parameters storageAccountName=<存储账户名> privateEndpointName=<终结点名> virtualNetworkName=<虚拟网络名> subnetName=<子网名>

若输出显示仅添加新资源,无现有存储账户的修改操作,即可放心部署。

4. 执行部署

用Azure CLI执行部署:

az deployment group create --resource-group <你的资源组名称> --template-file <模板文件路径> --parameters storageAccountName=<存储账户名> privateEndpointName=<终结点名> virtualNetworkName=<虚拟网络名> subnetName=<子网名>

也可通过Azure门户的「部署自定义模板」功能上传模板完成部署。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 05:30:52