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

如何将Microsoft Fabric Synapse数据仓库接入Azure DevOps CI/CD发布管道

Azure DevOps CI/CD 发布管道连接 Microsoft Fabric 数据仓库配置指南

一、前置要求

  • 用于认证的Azure服务主体,必须拥有目标Microsoft Fabric数据仓库的SQL管理员权限(或至少具备执行待运行SQL脚本所需的权限,如db_ddladmin+db_datawriter组合)
  • Azure DevOps项目中已创建Azure Resource Manager服务连接,用于关联服务主体与Fabric资源

二、配置Azure DevOps服务连接

  1. 进入Azure DevOps项目,依次点击「项目设置」→「服务连接」→「新建服务连接」
  2. 选择「Azure Resource Manager」类型,点击「下一步」
  3. 选择「服务主体(自动)」模式,关联对应Azure订阅及Fabric数据仓库所在的资源组,给服务连接命名(例如Fabric-DW-Service-Conn),勾选「允许所有管道使用此连接」后保存

三、PowerShell脚本优化(服务主体认证版)

原脚本使用用户名密码认证存在安全风险,且服务主体认证需通过Azure AD令牌实现,以下是适配Fabric的脚本:

# 获取Azure AD访问令牌(依赖Azure DevOps服务连接上下文)
$accessToken = (Get-AzAccessToken -ResourceUrl "https://database.windows.net/").Token

# Fabric数据仓库核心连接信息
$serverName = "V7PULMP2UPRULHPJ3OYUMXKS7Y-ZDY7HCDTEL2EJLFT4SSIWSHTVA.datawarehouse.pbidedicated.windows.net"
$databaseName = "MSF warehouse"

# 遍历指定目录下所有SQL脚本
$sqlFiles = Get-ChildItem -Path "$(System.DefaultWorkingDirectory)\_copy directory\build artifact\ELT\scripts" -Filter *.sql

foreach ($file in $sqlFiles) {
    Write-Host "执行SQL脚本: $($file.Name)"
    $sqlContent = Get-Content $file.FullName -Raw

    # 通过Azure AD令牌认证执行脚本
    Invoke-SqlCmd -ServerInstance $serverName `
                  -Database $databaseName `
                  -AccessToken $accessToken `
                  -Query $sqlContent `
                  -ErrorAction Stop
}

脚本说明

  • 依赖Az.Accounts模块,微软托管代理默认预装,自托管代理需手动安装
  • 需通过Azure DevOps的「Azure PowerShell」任务执行此脚本,自动继承服务连接的认证上下文

四、发布管道配置步骤

  1. 创建空白发布管道,关联包含SQL脚本的构建工件
  2. 添加「Azure PowerShell」任务:
    • 任务版本选择最新稳定版(如v5)
    • 「Azure连接类型」选择「Azure Resource Manager」
    • 「Azure订阅」选择之前创建的Fabric-DW-Service-Conn服务连接
    • 「脚本类型」选「文件路径」,指定工件中PowerShell脚本的路径
  3. 保存并触发发布,查看任务日志验证脚本执行结果

五、常见问题排查

  • 权限报错:检查服务主体是否在Fabric数据仓库中被授予足够权限,可通过Fabric门户进入数据仓库的「权限」页面配置
  • 令牌获取失败:确保服务连接的服务主体拥有Microsoft.Sql/servers/read权限,且Azure PowerShell模块版本≥2.0.0
  • 脚本执行失败:验证SQL脚本是否符合Synapse SQL语法(Fabric数据仓库兼容Synapse SQL),避免使用不支持的函数或语法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 09:40:30