Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
Tärkeää
Power BI Desktop -projektit ovat tällä hetkellä esikatseluvaiheessa.
fabric-cicd on Microsoftin kehittämä Python-kirjasto, joka tarjoaa Fabric-kehittäjille koodilähtöisen menetelmän Fabric-elementtien käyttöönottoon lähdekoodin hallinnasta työtiloihin käyttäen koodimäärittelymuotoa, kuten semanttisia malleja ja raportteja PBIP-tiedostomuodossa.
Tässä artikkelissa opit
- Ota PBIP-tiedostot käyttöön manuaalisesti paikalliselta koneelta
- Parametrisoi PBIP-tiedostot ympäristökohtaisia konfiguraatioita varten
- Automatisoi käyttöönotot haarapohjaisella työtilakohdistuksella Azure DevOpsin tai GitHub Actionsin avulla
Lue lisää PBIP-muodosta Power BI Desktop Projectsissa (PBIP) ja Fabric Git -integraation yleiskatsauksesta.
Miksi fabric-cicd PBIP:n käyttöönotossa?
fabric-cicd on suunniteltu erityisesti lähdeohjattujen Fabric-artefaktien käyttöönottoon ja tarjoaa useita etuja:
- Käyttää Fabricin natiiveja REST-rajapintoja – Rakennettu virallisille Microsoft Fabric API:lle, varmistaen yhteensopivuuden ja pitkäaikaisen tuen
- Python-natiivi – Saumaton integraatio nykyaikaisiin Python-pohjaisiin DevOps-työnkulkuihin
- Parametrisointi: Sisäänrakennettu tuki ympäristökohtaisille konfiguraatioille (työtilan ID:t, tietolähteet, yhteysmerkkijonot)
- Kehittäjäystävällinen: Yksinkertaiset Python-skriptit, jotka toimivat paikallisesti tai CI/CD-putkistoissa
- Joustava käyttöönoton hallinta: Ota käyttöön vain tietyt alkiotyypit (esim. semanttiset mallit ilman raportteja tai semanttiset mallit, joissa on tai ilman datavälimuistia) ja varmista johdonmukaiset asetukset, kuten oletussivut tai parametrit, ilman manuaalista puuttumista
- Orphan-puhdistus: Poistaa automaattisesti työtilasta kohteet, joita ei enää ole lähdekoodin hallinnassa
- Luotettava tunnistautuminen: Käyttää Azure Identity SDK:ta useilla todennusvaihtoehdoilla
Note
Täydellistä dokumentaatiota löytyy fabric-cicd-dokumentaatiosta.
Edellytykset
Varmista ennen aloittamista, että sinulla on:
- Python (versiot 3.9–3.12)
- Power BI Desktop -projekti tallennettuna PBIP-muotoon
- Pääsy Microsoft Fabric -työtilaan Contributorin roolilla
Automaattisiin käyttöönottoihin tarvitset myös:
- Palvelupäähenkilö, jolla on vähintään Contributor -rooli kohde-Fabric-työtiloissa
- Access to Azure DevOps tai GitHub Actions
- PBIP-tiedostosi lähdekoodin hallinnassa (Git, Azure DevOps tai GitHub)
Pika-aloitus
Tämä nopea alku näyttää, miten PBIP-projekti otetaan käyttöön paikallisesta koneestasi Fabric-työtilaan.
1. Asenna kangas-cicd
Avaa terminaali ja asenna fabric-cicd:
pip install fabric-cicd
2. Valmistele PBIP-projektisi
Varmista, että PBIP-projektissasi on tarvittavat tiedostot. Tyypillinen PBIP-projektirakenne:
my-powerbi-project/
├── SalesAnalytics.Report/
│ ├── definition.pbir
│ └── definition/
│ └── pages/
├── SalesAnalytics.SemanticModel/
│ ├── definition.pbism
│ └── definition/
│ ├── model.tmdl
│ ├── tables/
│ └── ...
└── SalesAnalytics.pbip
Yksityiskohtaista tietoa vaadituista tiedostoista ja formaateista löydät Power BI Desktop -projektiraporttikansiosta ja Power BI Desktop -projektin semanttisen mallin kansiosta.
Tip
Luodaksesi PBIP-projektin, avaa PBIX-tiedostosi Power BI Desktopissa ja tallenna se File > Save As > Power BI Project (.pbip) -toiminnolla. Katso lisätietoja Power BI Desktop -projekteista .
3. Luo käyttöönottoskripti
Luo deploy.py tiedosto projektihakemistoosi:
import argparse
import sys
from azure.identity import InteractiveBrowserCredential, AzureCliCredential
from fabric_cicd import FabricWorkspace, publish_all_items
parser = argparse.ArgumentParser(description="Deploy PBIP to Fabric")
parser.add_argument("--workspace_id", type=str, required=True, help="Target workspace ID")
parser.add_argument("--environment", type=str, default="dev", help="Environment name")
args = parser.parse_args()
# Use AzureCliCredential in CI/CD, fall back to InteractiveBrowserCredential for local
try:
credential = AzureCliCredential()
except Exception:
credential = InteractiveBrowserCredential()
workspace_params = {
"workspace_id": args.workspace_id,
"environment": args.environment,
"repository_directory": ".",
"item_type_in_scope": ["SemanticModel", "Report"],
"token_credential": credential,
}
target_workspace = FabricWorkspace(**workspace_params)
publish_all_items(target_workspace)
4. Lähetä
Suorita käyttöönottoskripti työtilan ID:llä:
python deploy.py --workspace_id "11111111-1111-1111-1111-111111111111"
Selaimesi avautuu tunnistautumista varten. Kirjautumisen jälkeen fabric-cicd ottaa PBIP-tiedostosi käyttöön kohdetyötilaan. Näet edistymisviestejä kuten:
[info] Publishing SemanticModel 'SalesAnalytics'
Operation in progress. Checking again in 1 second (Attempt 1)...
Published
[info] Publishing Report 'SalesAnalytics'
Published
Käyttöönotto kestää tyypillisesti 20–30 sekuntia semanttisen mallin koosta riippuen.
Note
Ensimmäisellä kerralla, kun otat käyttöön semanttisen mallin tietolähteillä, sinun täytyy konfiguroida tietolähteiden tunnistetiedot manuaalisesti Fabric-portaalissa. Mene Workspace > Semantic Model > Settings > Data source credentials -kohtaan. Myöhemmissä käyttöönotoissa tallennetut tunnukset kierrätetään.
Ympäristökohtainen parametrisointi
Yksi fabric-cicd:n tehokkaimmista ominaisuuksista on kyky parametrisoida PBIP-tiedostot eri ympäristöille. Tämä on olennaista, kun semanttiset mallit viittaavat ympäristökohtaisiin resursseihin, kuten työtilan ID:ihin, järvitalotunnisteisiin tai yhteysmerkkijonoihin.
Esimerkki: Parametrisoi työtila ja järvitalo-ID:t
Luo parameter.yml tiedosto projektin juureen määritelläksesi ympäristökohtaiset arvot:
find_replace:
# Replace workspace ID for DirectLake connection
- find_value: "11111111-1111-1111-1111-111111111111"
replace_value:
dev: "11111111-1111-1111-1111-111111111111" # Dev workspace
prod: "22222222-2222-2222-2222-222222222222" # Prod workspace
# Replace lakehouse ID for DirectLake semantic model
- find_value: "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
replace_value:
dev: "aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa" # Dev lakehouse
prod: "bbbbbbbb-bbbb-bbbb-bbbb-bbbbbbbbbbbb" # Prod lakehouse
Kun suoritat python deploy.py --workspace_id "11111111-1111-1111-1111-111111111111" --environment dev, fabric-cicd automaattisesti:
- Lukee parameter.yml-tiedoston
- Löytää kaikki instanssit
find_valuePBIP-määrittelutiedostoistasi - Korvaa ne vastaavalla ympäristökohtaisella
replace_value - Ottaa muokatut määritelmät käyttöön kohdetyötilassa
Automatisoi käyttöönotto
Voit automatisoida PBIP-käyttöönotot aina, kun koodi yhdistetään tiettyihin haaroihin varastossasi. Automaatio noudattaa tätä logiikkaa:
- Putki tai työnkulku käynnistyy, kun koodi lähetetään konfiguroituun haaraan (esim.
devtaimain) - Haaran nimi määrittää kohdeympäristön ja työtilan ID:n
- Käyttöönottoskripti suoritetaan automaattisesti sopivilla parametreilla
- PBIP-artefaktit sijoituvat oikeaan työtilaan kyseiselle ympäristölle
Tässä osiossa käsitellään Azure DevOpsin ja GitHub Actionsin yhteisiä asennusvaiheita, joita seuraavat alustakohtaiset konfiguraatio-ohjeet.
Asetusten määrittäminen
Ennen CI/CD-alustan konfigurointia suorita nämä yleiset asennusvaiheet:
1. Luo palveluperiaate
Luo palvelupäähenkilö Azure AD:ssa Contributor- tai Admin-roolilla Fabric-työtiloissasi.
2. Lisää palveluperiaate Fabric-työtiloihin
- Avaa Fabric-portaali ja siirry jokaiseen kohdetyötilaan (kehittäjä, tuotanto)
- Mene Workspace Settings > -kohtaan Hallinnoi pääsyä
- Lisää palvelupäähenkilö Contributorin tai Adminin rooliin
Note
Palveluperiaatteet on oltava käytössä vuokralaistasolla, jotta ne voivat käyttää Fabric-rajapintoja. Lisätietoja löytyy kohdasta Service principals can call Fabricin julkisia API-rajapintoja.
3. Määritä haarat varastossasi
Luo haarat, joita käytät automaatioon. Tässä artikkelissa olevat esimerkit:
- Luo haara
devkehitysympäristön käyttöönottoa varten - Luo haara
maintuotantoympäristön käyttöönottoja varten
Voit muokata haarojen nimiä ja lisätä lisää ympäristöjä muokkaamalla YAML-tiedostojen työtilan karttoja.
Azure DevOps
Automatisoi PBIP-käyttöönotot Azure Pipelinesilla. Kun koodia työnnetään konfiguroituihin haaroihin, putkisto siirtyy automaattisesti vastaavaan työtilaan.
Luo azure-pipelines.yml arkistosi juureen:
trigger:
branches:
include:
- dev
- main
variables:
- name: workspace_ids
value: |
{
"dev": "11111111-1111-1111-1111-111111111111",
"main": "22222222-2222-2222-2222-222222222222"
}
- name: environments
value: |
{
"dev": "dev",
"main": "prod"
}
stages:
- stage: Deploy
jobs:
- job: DeployPBIP
pool:
vmImage: 'windows-latest'
steps:
- checkout: self
- task: UsePythonVersion@0
inputs:
versionSpec: '3.12'
addToPath: true
- task: AzureCLI@2
displayName: 'Deploy PBIP to Fabric'
inputs:
azureSubscription: 'your-azure-service-connection'
scriptType: 'ps'
scriptLocation: 'inlineScript'
inlineScript: |
cd "$(Build.SourcesDirectory)"
pip install fabric-cicd
$branch_ref = $env:BUILD_SOURCEBRANCH
$branch_name = $branch_ref -replace '^refs/heads/', ''
$workspace_ids = '$(workspace_ids)' | ConvertFrom-Json
$environments = '$(environments)' | ConvertFrom-Json
$workspace_id = $workspace_ids.$branch_name
$environment = $environments.$branch_name
python -u deploy.py --workspace_id "$workspace_id" --environment "$environment"
if ($LASTEXITCODE -ne 0) {
Write-Error "Deployment failed with exit code: $LASTEXITCODE"
exit $LASTEXITCODE
}
Configure Azure DevOps
-
Luo Azure Service Connection Azure DevOps -projektiasetuksissa:
- Mene Projektiasetuksiin > Palveluyhteydet
- Luo uusi Azure Resource Manager -palveluyhteys käyttämällä palvelupäähenkilön tunnuksiasi
- Yksityiskohtaiset ohjeet löytyvät katsosta Connect to Microsoft Azure
- Päivitä YAML:n
azureSubscriptionarvo vastaamaan palveluyhteyden nimeä
-
Päivitä työtilan ID:t YAML:ssä:
- Muokkaa muuttujaa
workspace_idsazure-pipelines.yml - Aseta kehittäjä- ja tuotantotyötila-ID:t
- Sitoudu ja työnnä muutokset repositorioosi
- Muokkaa muuttujaa
-
Luo putkisto:
- Mene kohtaan Pipelines > Uudet putkisto
- Valitse repositoriosi ja valitse "Existing Azure Pipelines YAML -tiedosto"
- Valitse azure-pipelines.yml
- Yksityiskohtaiset ohjeet löydät kohdasta Luo ensimmäinen putki
- Tallenna ja suorita putkisto, jotta PBIP voidaan ottaa käyttöön Fabriciin
GitHub Actions
Automatisoi PBIP-käyttöönotot GitHub-toiminnoilla. Kun koodi lähetetään konfiguroituihin haaroihin, työnkulku siirtyy automaattisesti vastaavaan työtilaan.
Luo .github/workflows/deploy.yml tietovarastoosi:
name: Deploy PBIP to Fabric
on:
push:
branches: [dev, main]
workflow_dispatch:
jobs:
deploy:
runs-on: windows-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: '3.12'
- name: Set workspace variables
id: workspace
shell: pwsh
run: |
$branch_name = "${{ github.ref_name }}"
$workspace_ids = @{
"dev" = "11111111-1111-1111-1111-111111111111"
"main" = "22222222-2222-2222-2222-222222222222"
}
$environments = @{
"dev" = "dev"
"main" = "prod"
}
$workspace_id = $workspace_ids[$branch_name]
$environment = $environments[$branch_name]
echo "workspace_id=$workspace_id" >> $env:GITHUB_OUTPUT
echo "environment=$environment" >> $env:GITHUB_OUTPUT
- name: Azure Login
uses: azure/login@v1
with:
creds: ${{ secrets.AZURE_CREDENTIALS }}
- name: Deploy PBIP to Fabric
shell: pwsh
run: |
pip install fabric-cicd
python -u deploy.py --workspace_id "${{ steps.workspace.outputs.workspace_id }}" --environment "${{ steps.workspace.outputs.environment }}"
if ($LASTEXITCODE -ne 0) {
Write-Error "Deployment failed with exit code: $LASTEXITCODE"
exit $LASTEXITCODE
}
Määritä GitHub-toiminnot
Luo Azure-tunnuksen salaisuus:
- Hanki palveluspäämiehen tunnuksesi JSON-muodossa:
{ "clientId": "<service-principal-client-id>", "clientSecret": "<service-principal-secret>", "subscriptionId": "<azure-subscription-id>", "tenantId": "<azure-tenant-id>" } - Mene GitHub-repositorioon Asetukset > Salaisuudet ja muuttujat > Toiminnot
- Lisää
AZURE_CREDENTIALSyllä oleva JSON
- Hanki palveluspäämiehen tunnuksesi JSON-muodossa:
Päivitä työtilan ID:t työnkulussa:
- Muokkaa hajautustaulua
workspace_ids"Aseta työtilamuuttujat" -vaiheessa.github/workflows/deploy.yml - Aseta kehittäjä- ja tuotantotyötila-ID:t
- Sitoudu ja työnnä työntyönkulun YAML repositorioosi
- Muokkaa hajautustaulua