关于 deployment-admin
面向 Power BI 管理员和交付团队的部署与治理技能,涵盖环境晋级、CI/CD、访问安全、容量和工作区管理。
主要功能
- 01部署管道与 REST API 自动化
- 02GitHub Actions 和 Azure DevOps CI/CD
- 03Fabric Git 集成与分支策略
- 04RLS 和 OLS 安全配置
- 05容量与工作区角色管理
适用场景
- 01在开发、测试和生产环境间晋级内容
- 02通过 CI/CD 部署 PBIP 项目
- 03配置按用户或角色限制的数据访问
- 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 年底起正式发布):
- 将工作区连接到仓库: 工作区设置 > Git 集成 > 连接
- 支持的仓库: Azure DevOps Repos、GitHub(2025+)
- 同步方向: 工作区到仓库(提交)或仓库到工作区(更新)
- 支持的项目: 报告、语义模型、笔记本、管道、湖仓
分支策略:
- 将主分支连接到生产工作区
- 使用功能分支进行开发
- 基于 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 | 对应的旧版 SKU | CU | PBI 内容查看 |
|---|---|---|---|
| F2 | EM1 | 2 | 否(仅 API) |
| F4 | EM2 | 4 | 否 |
| F8 | EM3 | 8 | 否 |
| F16 | P1(部分) | 16 | 否 |
| F32 | P1(部分) | 32 | 否 |
| F64 | P1 | 64 | 是(用户数不限) |
| F128 | P2 | 128 | 是 |
| F256 | P3 | 256 | 是 |
重要规则: 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、安全性、部署架构