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

GlobalParametersUpdateScript.ps1重置ADF公网访问配置问题

ADF CI/CD更新全局参数时网络配置被重置为公共端点问题

我配置了Azure Data Factory(简称ADF)CI/CD流水线,所用的ADF实例配置了多个全局参数,因此参照官方文档开展全局参数的CI/CD配置。文档页面提供了如下用于更新全局参数的PowerShell脚本,运行时出现异常:每次运行该脚本,都会将ADF的网络访问配置从private endpoint(专用端点)重置为Public endpoint(公共端点)。

param
(
    [parameter(Mandatory = $true)] [String] $globalParametersFilePath,
    [parameter(Mandatory = $true)] [String] $resourceGroupName,
    [parameter(Mandatory = $true)] [String] $dataFactoryName
)

Import-Module Az.DataFactory

$newGlobalParameters = New-Object 'system.collections.generic.dictionary[string,Microsoft.Azure.Management.DataFactory.Models.GlobalParameterSpecification]'

Write-Host "Getting global parameters JSON from: " $globalParametersFilePath
$globalParametersJson = Get-Content $globalParametersFilePath

Write-Host "Parsing JSON..."
$globalParametersObject = [Newtonsoft.Json.Linq.JObject]::Parse($globalParametersJson)

# $gp in $factoryFileObject.properties.globalParameters.GetEnumerator()) 
# may  be used in case you use non-standard location for global parameters. It is not recommended. 
foreach ($gp in $globalParametersObject.GetEnumerator()) {
    Write-Host "Adding global parameter:" $gp.Key
    $globalParameterValue = $gp.Value.ToObject([Microsoft.Azure.Management.DataFactory.Models.GlobalParameterSpecification])
    $newGlobalParameters.Add($gp.Key, $globalParameterValue)
}

$dataFactory = Get-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Name $dataFactoryName
$dataFactory.GlobalParameters = $newGlobalParameters

Write-Host "Updating" $newGlobalParameters.Count "global parameters."

Set-AzDataFactoryV2 -InputObject $dataFactory -Force

需求为让ADF始终通过*Private endpoint(专用端点)*提供网络访问,确认是否有其他开发者遇到过同类问题。

Azure Data Factory Network Access


问题原因

这是旧版Az.DataFactory PowerShell模块的已知缺陷:旧版本中Get-AzDataFactoryV2 cmdlet返回的ADF实例对象未完整携带公网访问开关、专用端点关联等网络配置属性,调用Set-AzDataFactoryV2做全量资源更新时,缺失的网络配置字段会被服务端默认赋值为公共端点访问模式,最终导致原有专用端点配置被重置。

解决方案

  • 优先将流水线运行环境、本地环境安装的Az.DataFactory模块升级到最新版本,新版本已修复该对象属性缺失的问题,更新全局参数时会自动保留原有网络配置:
    # 升级Az.DataFactory模块
    Update-Module Az.DataFactory -Force
    
  • 若受环境限制无法升级模块,可直接修改更新脚本,在执行Set-AzDataFactoryV2前显式指定公网访问状态为禁用,避免配置被覆盖:
    $dataFactory = Get-AzDataFactoryV2 -ResourceGroupName $resourceGroupName -Name $dataFactoryName
    $dataFactory.GlobalParameters = $newGlobalParameters
    # 显式禁用公网访问,强制保留专用端点访问模式
    $dataFactory.PublicNetworkAccess = 'Disabled'
    
    Write-Host "Updating" $newGlobalParameters.Count "global parameters."
    Set-AzDataFactoryV2 -InputObject $dataFactory -Force
    
  • 如果ADF还配置了公网IP白名单、VNet注入等额外网络规则,升级模块后建议先在测试环境验证更新逻辑,确认所有网络属性都能被正常保留后再上线到生产流水线。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 08:24:11