mcpField
D
deployment-admin

deployment-admin

github.com/josiahsiegel云与 DevOps5990 次安装19 周前更新
代码仓库

关于 deployment-admin

面向 Power BI 管理员和交付团队的部署与治理技能,涵盖环境晋级、CI/CD、访问安全、容量和工作区管理。

主要功能

  1. 01部署管道与 REST API 自动化
  2. 02GitHub Actions 和 Azure DevOps CI/CD
  3. 03Fabric Git 集成与分支策略
  4. 04RLS 和 OLS 安全配置
  5. 05容量与工作区角色管理

适用场景

  1. 01在开发、测试和生产环境间晋级内容
  2. 02通过 CI/CD 部署 PBIP 项目
  3. 03配置按用户或角色限制的数据访问
  4. 04管理工作区权限和容量

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/josiahsiegel/claude-plugin-marketplace --skill deployment-admin

安装后在 Claude Code 中输入/deployment-admin确认已加载。

附带文件references/governance-checklist.mdreferences/report-server-detail.md

详细介绍

部署和管理

概述

Power BI 部署涵盖从开发到生产的全过程,涉及工作区、容量和环境。本技能介绍部署管道、CI/CD 自动化、安全配置、容量管理和治理最佳实践。

部署管道

Power BI 内置功能,可在不同环境间推广内容:

阶段用途典型用法
开发构建和迭代开发人员测试更改
测试验证QA 审查、用户验收
生产终端用户正式报告和仪表板

要求: 所有阶段的工作区都必须使用 Premium、PPU 或 Fabric 容量。

部署规则:

  • 部署的内容类型:报告、语义模型、数据流、分页报告
  • 参数化规则用于处理特定环境的值(服务器名称、数据库)
  • 支持向后部署(从生产到开发),但请谨慎使用
  • 自动绑定会将已部署的报告连接到各阶段中正确的语义模型
通过 REST API 实现管道自动化
# Get deployment pipelines
GET https://api.powerbi.com/v1.0/myorg/pipelines

# Deploy all content from stage 0 (Dev) to stage 1 (Test)
POST https://api.powerbi.com/v1.0/myorg/pipelines/{pipelineId}/deployAll
{
  "sourceStageOrder": 0,
  "options": {
    "allowOverwriteArtifact": true,
    "allowCreateArtifact": true,
    "allowOverwriteTargetArtifactLabel": true
  },
  "note": "Automated deployment from CI/CD"
}

使用 GitHub Actions 实现 CI/CD

基于 PBIP 的部署
name: Power BI Deploy
on:
  push:
    branches: [main]
    paths: ['reports/**']

permissions:
  id-token: write
  contents: read

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4

      - name: Azure Login (Service Principal)
        uses: azure/login@v2
        with:
          client-id: ${{ secrets.AZURE_CLIENT_ID }}
          tenant-id: ${{ secrets.AZURE_TENANT_ID }}
          subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID }}

      - name: Get Access Token
        id: token
        run: |
          TOKEN=$(az account get-access-token \
            --resource https://analysis.windows.net/powerbi/api \
            --query accessToken -o tsv)
          echo "::add-mask::$TOKEN"
          echo "token=$TOKEN" >> $GITHUB_OUTPUT

      - name: Deploy via Fabric REST API
        run: |
          # Import PBIP to workspace using Fabric Git integration
          # or use deployment pipeline API
          curl -X POST \
            "https://api.powerbi.com/v1.0/myorg/pipelines/${{ secrets.PIPELINE_ID }}/deployAll" \
            -H "Authorization: Bearer ${{ steps.token.outputs.token }}" \
            -H "Content-Type: application/json" \
            -d '{
              "sourceStageOrder": 0,
              "options": {
                "allowOverwriteArtifact": true,
                "allowCreateArtifact": true
              }
            }'
验证步骤(最佳实践分析器)
      - name: Run Tabular Editor BPA
        run: |
          # Install Tabular Editor CLI
          dotnet tool install -g TabularEditor.TOMWrapper
          # Run Best Practice Analyzer
          tabulareditor model.bim -A BPARules.json -V

使用 Azure DevOps 实现 CI/CD

trigger:
  branches:
    include: [main]
  paths:
    include: ['reports/*']

pool:
  vmImage: 'ubuntu-latest'

steps:
  - task: PowerBIActions@5
    displayName: 'Deploy to Test'
    inputs:
      PowerBIServiceConnection: 'PowerBI-ServicePrincipal'
      Action: 'Publish'
      WorkspaceName: 'Sales-Test'
      PbixFile: '$(Build.SourcesDirectory)/reports/*.pbix'
      OverWrite: true

  - task: PowerBIActions@5
    displayName: 'Refresh Dataset'
    inputs:
      PowerBIServiceConnection: 'PowerBI-ServicePrincipal'
      Action: 'DatasetRefresh'
      WorkspaceName: 'Sales-Test'
      DatasetName: 'SalesModel'

Azure DevOps 扩展: 从 Visual Studio Marketplace 安装“Power BI Actions”,以使用原生管道任务。

Fabric Git 集成

原生源代码管理集成(自 2023 年底起正式发布):

  1. 将工作区连接到仓库: 工作区设置 > Git 集成 > 连接
  2. 支持的仓库: Azure DevOps Repos、GitHub(2025+)
  3. 同步方向: 工作区到仓库(提交)或仓库到工作区(更新)
  4. 支持的项目: 报告、语义模型、笔记本、管道、湖仓

分支策略:

  • 将主分支连接到生产工作区
  • 使用功能分支进行开发
  • 基于 PR 进行审查和合并
  • 合并到主分支后自动同步

安全性

行级安全性(RLS)

在 Power BI Desktop 中定义(建模 > 管理角色):

// Static RLS - filter by specific values
[Region] = "West"

// Dynamic RLS - filter by logged-in user
[Email] = USERPRINCIPALNAME()

// Dynamic RLS with lookup table
[ManagerEmail] = USERPRINCIPALNAME()
|| PATHCONTAINS([ManagerPath], LOOKUPVALUE(
    Employees[EmployeeID],
    Employees[Email], USERPRINCIPALNAME()
))

测试:

  • Desktop:建模 > 查看为 > 选择角色(不支持 USERPRINCIPALNAME)
  • 服务:语义模型设置 > 安全性 > 使用特定用户测试角色
  • 嵌入:使用有效身份生成嵌入令牌

规则:

  • RLS 仅适用于查看者;管理员/成员/参与者不受 RLS 限制
  • 必须在 Power BI 服务中将用户/组添加到角色
  • 服务主体可以通过使用 EffectiveIdentity 生成令牌来测试 RLS
  • RLS 筛选器会沿关系传播(单向)
  • 使用双向筛选时,请仔细测试,以防出现安全漏洞
对象级安全性(OLS)

限制特定角色对指定表/列的访问。可通过以下方式配置:

  • Tabular Editor(推荐)
  • TOM/.NET SDK
  • 带有 TMSL 的 XMLA 端点
// TMSL to add OLS
{
  "createOrReplace": {
    "object": { "database": "model", "role": "RestrictedUser" },
    "role": {
      "name": "RestrictedUser",
      "tablePermissions": [{
        "name": "Employees",
        "columnPermissions": [{
          "name": "Salary",
          "metadataPermission": "none"
        }]
      }]
    }
  }
}

容量管理

SKU 类型使用场景功能
Power BI Pro个人协作1GB 模型,每天刷新 8 次
Power BI Premium Per User (PPU)按用户提供 Premium 功能100GB 模型,每天刷新 48 次,XMLA,部署管道
Power BI Premium (P SKU)组织范围使用,已弃用,建议改用 Fabric F SKU专用容量
Fabric F SKU现代容量F2 到 F2048,取代 P/A/EM SKU
Power BI Embedded (A/EM SKU)应用嵌入,已弃用,建议改用 F SKU由 API 驱动

Fabric F-SKU 等效关系(2026):

F-SKU对应的旧版 SKUCUPBI 内容查看
F2EM12否(仅 API)
F4EM24否
F8EM38否
F16P1(部分)16否
F32P1(部分)32否
F64P164是(用户数不限)
F128P2128是
F256P3256是

重要规则: F64 是包含 Power BI 内容查看权限的最低 Fabric SKU,适用于没有 Pro/PPU 许可证的用户。

工作区管理

工作区角色权限
管理员完全控制、添加/移除成员、删除工作区
成员发布、编辑内容、共享、管理权限
贡献者创建/编辑内容,不能共享或管理权限
查看者仅查看内容,受 RLS 限制

最佳实践:

  • 使用安全组分配角色(而非单个用户)
  • 为每个环境分别创建工作区(开发/测试/生产)
  • 使用应用分发面向最终用户的内容
  • 将每个工作区的管理员角色限制在 2-3 人
  • 启用审计日志以满足治理要求

Power BI Report Server(本地部署)

如需全面了解 Report Server,请参阅 references/report-server-detail.md。 关键信息:需要 SQL Server Enterprise SA 或 Premium 许可证;仅使用 PBIX(不支持 PBIR);发布时间为 1 月/5 月/9 月;最新版本为 2026 年 1 月。

Fabric Git 集成更新(2025-2026)

自最初正式发布以来的 Git 集成增强:

  • 除 Azure DevOps Repos 外,还新增了 GitHub 支持(2025 年)
  • 实时智能项目(Eventstream、KQL DB、Data Activator)现已支持 Git 集成
  • Dataflow Gen2 支持 CI/CD 和 Git 集成
  • 部署管道支持由 Git 触发的自动化
  • 改进了 PBIR 格式报表的冲突解决能力(按可视化对象划分文件粒度)

其他资源

参考文件
  • references/governance-checklist.md -- 租户设置、审计日志、敏感度标签、数据丢失防护和合规性检查清单
  • references/report-server-detail.md -- Power BI Report Server 本地部署:版本、功能比较、REST API、安全性、部署架构

评论

支持 Markdown