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

如何高效批量删除链接Azure DevOps GIT的50+个ADF管道?

我懂你这种手动删几十条管道的痛苦!确实,当ADF链接了Azure DevOps Git时,常规的PowerShell cmdlet只能操作Data Factory模式下的管道,因为Git模式里的资源本质是托管在DevOps仓库中的代码文件,不是直接存在ADF服务里的。下面给你几个高效的批量删除方案,选适合你的来用:

方案1:Azure CLI + Git批量删除(最推荐,简单高效)

ADF在Git模式下,所有管道的定义都存在DevOps仓库的/adf/pipelines/路径下(每个管道对应一个JSON文件)。我们可以直接操作Git仓库来批量删除这些文件,再同步到ADF:

  • 第一步:克隆你的Azure DevOps仓库到本地
    git clone <你的DevOps仓库HTTPS/SSH地址>
    
  • 第二步:进入ADF管道的目录
    cd <本地仓库路径>/adf/pipelines
    
  • 第三步:批量删除目标管道文件
    如果要删除名称符合特定规则的管道(比如包含Legacy_前缀),可以用:
    rm Legacy_*.json
    
    要是有明确的管道列表,就直接列出来删除:
    rm Pipeline_Old_01.json Pipeline_Old_02.json Pipeline_Old_03.json
    
  • 第四步:提交并推送更改到DevOps仓库
    git add .
    git commit -m "批量清理废弃的ADF管道"
    git push origin <你的工作分支名,比如main>
    
  • 第五步:同步ADF并生效
    回到Azure Data Factory门户,点击顶部的「同步」按钮,等仓库内容同步到ADF后,这些管道就会从列表里消失了。如果需要推送到生产环境,再执行一次发布操作就行。
方案2:用ADF REST API批量删除(适合自动化场景)

如果需要把删除逻辑做成自动化脚本,可以用ADF的REST API来操作Git模式下的资源:

  • 第一步:准备必要的信息
    你需要:Azure订阅ID、资源组名、ADF实例名、DevOps仓库ID、项目ID、目标分支名,还有有效的访问令牌(可以用Azure AD令牌或者DevOps个人访问令牌PAT)。
  • 第二步:用PowerShell编写批量删除脚本
    # 替换成你的信息
    $subscriptionId = "你的订阅ID"
    $resourceGroup = "你的资源组名"
    $adfName = "你的ADF实例名"
    $branchName = "main"
    $repoId = "你的DevOps仓库ID"
    $projectId = "你的DevOps项目ID"
    $token = "你的访问令牌"
    
    # 要删除的管道名称列表
    $pipelineNames = @("Pipeline_Old_01", "Pipeline_Old_02", "Pipeline_Old_03")
    
    foreach ($name in $pipelineNames) {
        $deleteUri = "https://management.azure.com/subscriptions/$subscriptionId/resourceGroups/$resourceGroup/providers/Microsoft.DataFactory/factories/$adfName/pipelines/$name?api-version=2018-06-01&gitSourceControlBranch=$branchName&gitSourceControlRepoId=$repoId&gitSourceControlProjectId=$projectId"
        
        Invoke-RestMethod -Uri $deleteUri -Method Delete -Headers @{Authorization = "Bearer $token"}
        Write-Host "已删除管道:$name"
    }
    
  • 第三步:同步ADF
    执行完脚本后,同样需要在ADF门户点击「同步」,确保更改生效。
方案3:Azure DevOps门户可视化批量删除(适合不太熟悉命令行的情况)

如果不想用命令行,直接在DevOps门户操作也可以:

  • 打开你的Azure DevOps项目,进入仓库,导航到/adf/pipelines/路径
  • 按住Ctrl键多选你要删除的管道JSON文件
  • 点击顶部的「删除」按钮,然后提交更改到目标分支
  • 回到ADF门户同步即可

重要注意事项

  • 操作前一定要备份仓库,比如创建一个分支或者导出管道文件,避免误删重要资源!
  • 同步ADF后,先在开发环境确认管道已经被移除,再发布到生产环境
  • 如果你用了CI/CD流水线发布ADF,记得检查流水线是否会因为管道被删除而报错

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 21:27:42