Σημείωση
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να συνδεθείτε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτή τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Σημαντικό
Τα έργα του Power BI Desktop βρίσκονται αυτήν τη στιγμή σε προεπισκόπηση.
Το fabric-cicd είναι μια βιβλιοθήκη Python που αναπτύχθηκε από τη Microsoft και παρέχει μια μέθοδο πρώτου κώδικα για τους προγραμματιστές Fabric για την ανάπτυξη στοιχείων Fabric από τον έλεγχο προέλευσης σε χώρους εργασίας χρησιμοποιώντας τη μορφή ορισμού κώδικα, όπως σημασιολογικά μοντέλα και αναφορές χρησιμοποιώντας τη μορφή αρχείου PBIP.
Σε αυτό το άρθρο, θα μάθετε πώς μπορείτε να κάνετε τα εξής:
- Αναπτύξτε αρχεία PBIP με μη αυτόματο τρόπο από τον τοπικό υπολογιστή σας
- Παραμετροποίηση αρχείων PBIP για διαμορφώσεις για συγκεκριμένο περιβάλλον
- Αυτοματοποιήστε τις αναπτύξεις με στόχευση χώρου εργασίας που βασίζεται σε διακλάδωση χρησιμοποιώντας Azure DevOps ή GitHub Actions
Μάθετε περισσότερα σχετικά με τη μορφή PBIP σε έργα Power BI Desktop (PBIP) και την επισκόπηση ενοποίησης Fabric Git.
Γιατί fabric-cicd για ανάπτυξη PBIP;
Το fabric-cicd έχει σχεδιαστεί ειδικά για την ανάπτυξη τεχνουργημάτων υφάσματος ελεγχόμενης πηγής και προσφέρει πολλά πλεονεκτήματα:
- Χρησιμοποιεί εγγενή API REST Fabric - Βασίζεται σε επίσημα API Microsoft Fabric, διασφαλίζοντας συμβατότητα και μακροπρόθεσμη υποστήριξη
- Python-native - Απρόσκοπτη ενσωμάτωση με σύγχρονες ροές εργασίας DevOps που βασίζονται σε Python
- Παραμετροποίηση: Ενσωματωμένη υποστήριξη για διαμορφώσεις για συγκεκριμένο περιβάλλον (αναγνωριστικά χώρου εργασίας, προελεύσεις δεδομένων, συμβολοσειρές σύνδεσης)
- Φιλικό προς τους προγραμματιστές: Απλά σενάρια Python που μπορούν να εκτελεστούν τοπικά ή σε αγωγούς CI/CD
- Ευέλικτος έλεγχος ανάπτυξης: Αναπτύξτε μόνο συγκεκριμένους τύπους στοιχείων (π.χ. σημασιολογικά μοντέλα χωρίς αναφορές ή σημασιολογικά μοντέλα με ή χωρίς κρυφή μνήμη δεδομένων) και εξασφαλίστε συνεπείς διαμορφώσεις, όπως προεπιλεγμένες σελίδες ή παραμέτρους χωρίς μη αυτόματη παρέμβαση
- Εκκαθάριση ορφανών: Καταργεί αυτόματα στοιχεία από τον χώρο εργασίας που δεν υπάρχουν πλέον στον έλεγχο προέλευσης
- Αξιόπιστος έλεγχος ταυτότητας: Χρησιμοποιεί το Azure Identity SDK με πολλές επιλογές ελέγχου ταυτότητας
Σημείωση
Για πλήρη τεκμηρίωση, ανατρέξτε στην τεκμηρίωση του fabric-cicd.
Προαπαιτούμενα στοιχεία
Πριν ξεκινήσετε, βεβαιωθείτε ότι έχετε:
- Python (έκδοση 3.9 έως 3.12)
- Ένα έργο Power BI Desktop αποθηκευμένο σε μορφή PBIP
- Πρόσβαση σε χώρο εργασίας Microsoft Fabric με ρόλο συμβαλλόντων
Για αυτοματοποιημένες αναπτύξεις, χρειάζεστε επίσης:
- Μια κύρια υπηρεσία με τουλάχιστον τον ρόλο συμβαλλόντων σε χώρους εργασίας Fabric προορισμού
- Πρόσβαση σε ενέργειες Azure DevOps ή GitHub
- Τα αρχεία PBIP στο στοιχείο ελέγχου προέλευσης (Git, Azure DevOps ή GitHub)
Γρήγορη εκκίνηση
Αυτή η γρήγορη εκκίνηση σάς δείχνει πώς μπορείτε να αναπτύξετε ένα έργο PBIP από τον τοπικό υπολογιστή σας σε έναν χώρο εργασίας Fabric.
1. Εγκαταστήστε το fabric-cicd
Ανοίξτε το τερματικό σας και εγκαταστήστε το fabric-cicd:
pip install fabric-cicd
2. Προετοιμάστε το έργο σας PBIP
Βεβαιωθείτε ότι το έργο σας PBIP περιλαμβάνει τα απαιτούμενα αρχεία. Μια τυπική δομή έργου PBIP:
my-powerbi-project/
├── SalesAnalytics.Report/
│ ├── definition.pbir
│ └── definition/
│ └── pages/
├── SalesAnalytics.SemanticModel/
│ ├── definition.pbism
│ └── definition/
│ ├── model.tmdl
│ ├── tables/
│ └── ...
└── SalesAnalytics.pbip
Για λεπτομερείς πληροφορίες σχετικά με τα απαιτούμενα αρχεία και μορφές, ανατρέξτε στο θέμα Φάκελος αναφοράς έργου Power BI Desktop και Φάκελος σημασιολογικού μοντέλου έργου Power BI Desktop.
Συμβουλή
Για να δημιουργήσετε ένα έργο PBIP, ανοίξτε το αρχείο PBIX στο Power BI Desktop και αποθηκεύστε το χρησιμοποιώντας την επιλογή Αποθήκευση αρχείου > ως > έργο Power BI (.pbip). Ανατρέξτε στο θέμα Έργα Power BI Desktop για περισσότερες λεπτομέρειες.
3. Δημιουργήστε σενάριο ανάπτυξης
Δημιουργήστε ένα deploy.py αρχείο στον κατάλογο του έργου σας:
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. Ανάπτυξη
Εκτελέστε τη δέσμη ενεργειών ανάπτυξης με το αναγνωριστικό του χώρου εργασίας σας:
python deploy.py --workspace_id "11111111-1111-1111-1111-111111111111"
Το πρόγραμμα περιήγησής σας ανοίγει για έλεγχο ταυτότητας. Μετά την είσοδο, το fabric-cicd αναπτύσσει τα αρχεία PBIP στον χώρο εργασίας προορισμού. Βλέπετε μηνύματα προόδου όπως:
[info] Publishing SemanticModel 'SalesAnalytics'
Operation in progress. Checking again in 1 second (Attempt 1)...
Published
[info] Publishing Report 'SalesAnalytics'
Published
Η ανάπτυξη διαρκεί συνήθως 20-30 δευτερόλεπτα, ανάλογα με το μέγεθος του μοντέλου σημασιολογίας σας.
Σημείωση
Την πρώτη φορά που αναπτύσσετε ένα μοντέλο σημασιολογίας με προελεύσεις δεδομένων, πρέπει να ρυθμίσετε με μη αυτόματο τρόπο τα διαπιστευτήρια προέλευσης δεδομένων στην πύλη Fabric. Μεταβείτε στις Ρυθμίσεις > σημασιολογικού μοντέλου > χώρου εργασίας > Διαπιστευτήρια προέλευσης δεδομένων. Οι επόμενες αναπτύξεις επαναχρησιμοποιούν τα αποθηκευμένα διαπιστευτήρια.
Παραμετροποίηση για συγκεκριμένο περιβάλλον
Ένα από τα πιο ισχυρά χαρακτηριστικά του fabric-cicd είναι η δυνατότητα παραμετροποίησης των αρχείων PBIP για διαφορετικά περιβάλλοντα. Αυτό είναι απαραίτητο όταν τα σημασιολογικά μοντέλα σας αναφέρονται σε πόρους που αφορούν συγκεκριμένο περιβάλλον, όπως αναγνωριστικά χώρου εργασίας, αναγνωριστικά lakehouse ή συμβολοσειρές σύνδεσης.
Παράδειγμα: Παραμετροποίηση αναγνωριστικών χώρου εργασίας και lakehouse
Δημιουργήστε ένα parameter.yml αρχείο στη ρίζα του έργου σας για να ορίσετε τιμές για συγκεκριμένο περιβάλλον:
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
Όταν εκτελείτε python deploy.py --workspace_id "11111111-1111-1111-1111-111111111111" --environment devαυτόματα το , fabric-cicd:
- Διαβάζει το αρχείο parameter.yml
- Βρίσκει όλες τις εμφανίσεις στα
find_valueαρχεία ορισμού PBIP - Τα αντικαθιστά με τα αντίστοιχα ειδικά για το περιβάλλον
replace_value - Αναπτύσσει τους τροποποιημένους ορισμούς στον χώρο εργασίας προορισμού
Αυτοματοποιήστε την ανάπτυξη
Μπορείτε να αυτοματοποιήσετε τις αναπτύξεις PBIP ώστε να εκτελούνται κάθε φορά που ο κώδικας συγχωνεύεται σε συγκεκριμένους κλάδους στο αποθετήριο σας. Ο αυτοματισμός ακολουθεί αυτή τη λογική:
- Μια διοχέτευση ή μια ροή εργασίας ενεργοποιείται όταν ο κώδικας ωθείται σε μια διαμορφωμένη διακλάδωση (π.χ.
devήmain) - Το όνομα της διακλάδωσης καθορίζει το περιβάλλον προορισμού και το αναγνωριστικό χώρου εργασίας
- Το σενάριο ανάπτυξης εκτελείται αυτόματα με τις κατάλληλες παραμέτρους
- Τα τεχνουργήματα PBIP αναπτύσσονται στον σωστό χώρο εργασίας για αυτό το περιβάλλον
Αυτή η ενότητα καλύπτει τα βήματα ρύθμισης που είναι κοινά τόσο για το Azure DevOps όσο και για τις ενέργειες GitHub, ακολουθούμενα από οδηγίες ρύθμισης παραμέτρων για συγκεκριμένη πλατφόρμα.
Ρύθμιση
Πριν διαμορφώσετε την πλατφόρμα CI/CD, ολοκληρώστε αυτά τα κοινά βήματα εγκατάστασης:
1. Δημιουργήστε μια κύρια υπηρεσία
Δημιουργήστε μια κύρια υπηρεσία στο Azure AD με ρόλο Συμβάλλοντα ή Διαχειριστή στους χώρους εργασίας Fabric.
2. Προσθήκη κύριας υπηρεσίας σε χώρους εργασίας Fabric
- Ανοίξτε την πύλη Fabric και μεταβείτε σε κάθε χώρο εργασίας προορισμού (dev, prod)
- Μεταβείτε στις Ρυθμίσεις > χώρου εργασίας Διαχείριση πρόσβασης
- Προσθήκη της κύριας υπηρεσίας με ρόλο συμβαλλόντων ή διαχειριστή
Σημείωση
Οι κύριες υπηρεσίες πρέπει να είναι ενεργοποιημένες σε επίπεδο μισθωτή για τη χρήση API Fabric. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Οι αρχές υπηρεσίας μπορούν να καλούν δημόσια API Fabric.
3. Διαμορφώστε κλάδους στο αποθετήριο σας
Δημιουργήστε τους κλάδους που θα χρησιμοποιήσετε για αυτοματοποίηση. Για τα παραδείγματα σε αυτό το άρθρο:
-
devΔημιουργία διακλάδωσης για αναπτύξεις περιβάλλοντος ανάπτυξης -
mainΔημιουργία διακλάδωσης για αναπτύξεις περιβάλλοντος παραγωγής
Μπορείτε να προσαρμόσετε τα ονόματα των κλάδων και να προσθέσετε περισσότερα περιβάλλοντα τροποποιώντας τις αντιστοιχίσεις χώρων εργασίας στα αρχεία YAML.
Azure DevOps
Αυτοματοποιήστε τις αναπτύξεις PBIP με διοχετεύσεις Azure. Όταν ο κώδικας προωθείται σε διαμορφωμένους κλάδους, η διοχέτευση αναπτύσσεται αυτόματα στον αντίστοιχο χώρο εργασίας.
Δημιουργήστε azure-pipelines.yml στη ρίζα του αποθετηρίου σας:
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
}
Ρύθμιση παραμέτρων Azure DevOps
-
Δημιουργήστε μια σύνδεση υπηρεσίας Azure στις ρυθμίσεις έργου Azure DevOps:
- Μετάβαση στις Ρυθμίσεις > έργου Συνδέσεις υπηρεσίας
- Δημιουργία νέας σύνδεσης υπηρεσίας Azure Resource Manager χρησιμοποιώντας τα διαπιστευτήρια της κύριας υπηρεσίας σας
- Για λεπτομερείς οδηγίες, ανατρέξτε στο θέμα Σύνδεση στο Microsoft Azure
- Ενημερώστε την
azureSubscriptionτιμή στο YAML ώστε να ταιριάζει με το όνομα της σύνδεσης υπηρεσίας σας
-
Ενημερώστε τα αναγνωριστικά χώρου εργασίας στο YAML:
- Επεξεργαστείτε τη
workspace_idsμεταβλητή στο azure-pipelines.yml - Ορίστε τα αναγνωριστικά χώρου εργασίας προγραμματιστή και προϊόντος
- Δεσμεύστε και προωθήστε τις αλλαγές στο αποθετήριο σας
- Επεξεργαστείτε τη
-
Δημιουργήστε τη διοχέτευση:
- Μετάβαση στο Pipelines > Νέος αγωγός
- Επιλέξτε το αποθετήριο σας και επιλέξτε "Υπάρχον αρχείο YAML αγωγών Azure"
- Επιλέξτε azure-pipelines.yml
- Για λεπτομερείς οδηγίες, ανατρέξτε στο θέμα Δημιουργία της πρώτης διοχέτευσης
- Αποθηκεύστε και εκτελέστε τη διοχέτευση για να αναπτύξετε το PBIP σας στο Fabric
GitHub Actions
Αυτοματοποιήστε τις αναπτύξεις PBIP με τις ενέργειες GitHub. Όταν ο κώδικας προωθείται σε διαμορφωμένους κλάδους, η ροή εργασίας αναπτύσσεται αυτόματα στον αντίστοιχο χώρο εργασίας.
Δημιουργήστε .github/workflows/deploy.yml στο αποθετήριο σας:
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
}
Ρύθμιση παραμέτρων ενεργειών GitHub
Δημιουργήστε τον μυστικό κωδικό διαπιστευτηρίων Azure:
- Λάβετε τα διαπιστευτήρια της κύριας υπηρεσίας σας σε μορφή JSON:
{ "clientId": "<service-principal-client-id>", "clientSecret": "<service-principal-secret>", "subscriptionId": "<azure-subscription-id>", "tenantId": "<azure-tenant-id>" } - Μεταβείτε στο αποθετήριο GitHub Ρυθμίσεις > Μυστικοί κωδικοί και μεταβλητές > Ενέργειες
- Προσθέστε
AZURE_CREDENTIALSμε το JSON παραπάνω
- Λάβετε τα διαπιστευτήρια της κύριας υπηρεσίας σας σε μορφή JSON:
Ενημερώστε τα αναγνωριστικά χώρου εργασίας στη ροή εργασίας:
- Επεξεργαστείτε τον
workspace_idsπίνακα κατακερματισμού στο βήμα "Ορισμός μεταβλητών χώρου εργασίας" στο.github/workflows/deploy.yml - Ορίστε τα αναγνωριστικά χώρου εργασίας προγραμματιστή και προϊόντος
- Δεσμεύστε και προωθήστε τη ροή εργασίας YAML στο αποθετήριο σας
- Επεξεργαστείτε τον