Αυτοματοποίηση ενοποίησης Git με χρήση API
Το εργαλείο ενοποίησης Microsoft Fabric Git επιτρέπει στις ομάδες να συνεργαστούν χρησιμοποιώντας τον έλεγχο προέλευσης για να δημιουργήσουν μια αποτελεσματική και επαναχρησιμοποιήσιμη διαδικασία έκδοσης για το περιεχόμενό τους Fabric.
Με τα API REST του Microsoft Fabric, μπορείτε να αυτοματοποιήσετε διαδικασίες Fabric και να ολοκληρώσετε εργασίες ταχύτερα και με λιγότερα σφάλματα. Αυτή η αποδοτικότητα οδηγεί σε εξοικονόμηση κόστους και βελτιωμένη παραγωγικότητα.
Αυτό το άρθρο περιγράφει τον τρόπο χρήσης των API REST ενοποίησης Git για την αυτοματοποίηση της ενοποίησης Git στο Microsoft Fabric.
Προαπαιτούμενα στοιχεία
Για να εργαστείτε με τα API Του Fabric Git, χρειάζεστε:
Οι ίδιες προϋποθέσεις που χρειάζεστε για να χρησιμοποιήσετε την ενοποίηση Git στο περιβάλλον εργασίας χρήστη.
Ένα διακριτικό Microsoft Entra για την υπηρεσία Fabric. Χρησιμοποιήστε αυτό το διακριτικό στην κεφαλίδα εξουσιοδότησης της κλήσης API. Για πληροφορίες σχετικά με τον τρόπο λήψης ενός διακριτικού, ανατρέξτε στο θέμα Γρήγορη εκκίνηση API Fabric.
Μπορείτε να χρησιμοποιήσετε τα REST API χωρίς το PowerShell, αλλά οι δέσμες ενεργειών σε αυτό το άρθρο χρησιμοποιούν το PowerShell. Για να εκτελέσετε τις δέσμες ενεργειών, πρέπει να ακολουθήσετε τα παρακάτω βήματα:
- Εγκατάσταση του PowerShell.
- Εγκαταστήστε τη λειτουργική μονάδα Azure PowerShell Az.
Συναρτήσεις API ενοποίησης Git
Τα API REST ενοποίησης Git μπορούν να σας βοηθήσουν να επιτύχετε συνεχή ενοποίηση και συνεχή παράδοση (CI/CD) του περιεχομένου σας. Ακολουθούν μερικά παραδείγματα σχετικά με το τι μπορεί να γίνει χρησιμοποιώντας τα API:
Δείτε ποια στοιχεία έχουν εισερχόμενες αλλαγές και ποια στοιχεία έχουν αλλαγές που δεν έχουν δεσμευτεί ακόμα στο Git με το API κατάστασης Git.
Λάβετε λεπτομέρειες σύνδεσης για τον καθορισμένο χώρο εργασίας.
Σύνδεση και αποσύνδεση ενός συγκεκριμένου χώρου εργασίας από το αποθετήριο Git και τον κλάδο που είναι συνδεδεμένος σε αυτόν.
Ενημερώστε τα διαπιστευτήριά μου Git για να ενημερώσετε τις λεπτομέρειες ρύθμισης παραμέτρων διαπιστευτηρίων Git.
Λάβετε τα διαπιστευτήριά μου Git για να λάβετε τις λεπτομέρειες ρύθμισης παραμέτρων διαπιστευτηρίων Git.
Προετοιμάστε μια σύνδεση για έναν χώρο εργασίας που είναι συνδεδεμένος στο Git.
Δέσμευση των αλλαγών που πραγματοποιήθηκαν στον χώρο εργασίας στον συνδεδεμένο απομακρυσμένο κλάδο.
Ενημερώστε τον χώρο εργασίας με δεσμεύσεις που προωθούνται στον συνδεδεμένο κλάδο.
Παραδείγματα
Χρησιμοποιήστε τις ακόλουθες δέσμες ενεργειών PowerShell για να κατανοήσετε τον τρόπο εκτέλεσης πολλών συνήθων διαδικασιών αυτοματισμού. Για να προβάλετε ή να αντιγράψετε το κείμενο σε ένα δείγμα PowerShell, χρησιμοποιήστε τις συνδέσεις σε αυτήν την ενότητα. Μπορείτε επίσης να δείτε όλα τα παραδείγματα στο αποθετήριο δεδομένων ενοποίησης Fabric Git δείγματα GitHub.
Σύνδεση και ενημέρωση
Αυτή η ενότητα περιγράφει τα βήματα που εμπλέκονται στη σύνδεση και την ενημέρωση ενός χώρου εργασίας με το Git.
Για την πλήρη δέσμη ενεργειών, ανατρέξτε στο θέμα Σύνδεση και ενημέρωση από το Git.
Είσοδος και λήψη διακριτικού πρόσβασης - Πραγματοποιήστε είσοδο στο Fabric ως χρήστης (όχι ως κύρια υπηρεσία). Χρησιμοποιήστε την εντολή Connect-AzAccount για να εισέλθετε. Για να λάβετε ένα διακριτικό πρόσβασης, χρησιμοποιήστε την εντολή Get-AzAccessToken .
Ο κώδικάς σας θα πρέπει να μοιάζει κάπως έτσι:
$global:resourceUrl = "https://api.fabric.microsoft.com" $global:fabricHeaders = @{} function SetFabricHeaders() { #Login to Azure Connect-AzAccount | Out-Null # Get authentication $fabricToken = (Get-AzAccessToken -ResourceUrl $global:resourceUrl).Token $global:fabricHeaders = @{ 'Content-Type' = "application/json" 'Authorization' = "Bearer {0}" -f $fabricToken } }
Καλέστε το API σύνδεσης για να συνδέσετε τον χώρο εργασίας σε ένα αποθετήριο δεδομένων και μια διακλάδωση του Git.
# Connect to Git Write-Host "Connecting the workspace '$workspaceName' to Git." $connectUrl = "{0}/workspaces/{1}/git/connect" -f $global:baseUrl, $workspace.Id # AzureDevOps details $azureDevOpsDetails = @{ gitProviderType = "AzureDevOps" organizationName = "<ORGANIZATION NAME>" projectName = "<PROJECT NAME>" repositoryName = "<REPOSITORY NAME>" branchName = "<BRANCH NAME>" directoryName = "<DIRECTORY NAME>" } $connectToGitBody = @{ gitProviderDetails =$azureDevOpsDetails } | ConvertTo-Json Invoke-RestMethod -Headers $global:fabricHeaders -Uri $connectUrl -Method POST -Body $connectToGitBody
Καλέστε το API Προετοιμασία σύνδεσης για να προετοιμάσετε τη σύνδεση μεταξύ του χώρου εργασίας και του αποθετηρίου δεδομένων/διακλάδωσης Git.
# Initialize Connection Write-Host "Initializing Git connection for workspace '$workspaceName'." $initializeConnectionUrl = "{0}/workspaces/{1}/git/initializeConnection" -f $global:baseUrl, $workspace.Id $initializeConnectionResponse = Invoke-RestMethod -Headers $global:fabricHeaders -Uri $initializeConnectionUrl -Method POST -Body "{}"
Με βάση την απόκριση από το API Προετοιμασία σύνδεσης, καλέστε είτε την Ενημέρωση από το Git API για να ολοκληρώσετε την ενημέρωση είτε να μην κάνετε τίποτα εάν δεν απαιτείται καμία ενέργεια.
Η ακόλουθη δέσμη ενεργειών ενημερώνει και παρακολουθεί την πρόοδο:
if ($initializeConnectionResponse.RequiredAction -eq "UpdateFromGit") { # Update from Git Write-Host "Updating the workspace '$workspaceName' from Git." $updateFromGitUrl = "{0}/workspaces/{1}/git/updateFromGit" -f $global:baseUrl, $workspace.Id $updateFromGitBody = @{ remoteCommitHash = $initializeConnectionResponse.RemoteCommitHash workspaceHead = $initializeConnectionResponse.WorkspaceHead } | ConvertTo-Json $updateFromGitResponse = Invoke-WebRequest -Headers $global:fabricHeaders -Uri $updateFromGitUrl -Method POST -Body $updateFromGitBody $operationId = $updateFromGitResponse.Headers['x-ms-operation-id'] $retryAfter = $updateFromGitResponse.Headers['Retry-After'] Write-Host "Long Running Operation ID: '$operationId' has been scheduled for updating the workspace '$workspaceName' from Git with a retry-after time of '$retryAfter' seconds." -ForegroundColor Green # Poll Long Running Operation $getOperationState = "{0}/operations/{1}" -f $global:baseUrl, $operationId do { $operationState = Invoke-RestMethod -Headers $global:fabricHeaders -Uri $getOperationState -Method GET Write-Host "Update from Git operation status: $($operationState.Status)" if ($operationState.Status -in @("NotStarted", "Running")) { Start-Sleep -Seconds $retryAfter } } while($operationState.Status -in @("NotStarted", "Running")) }
Ενημέρωση από το Git
Σε αυτή την ενότητα, περιγράφουμε τα βήματα που εμπλέκονται στην ενημέρωση ενός χώρου εργασίας με τις αλλαγές από το Git. Σε αυτή τη δέσμη ενεργειών, ενημερώνουμε τα στοιχεία χώρου εργασίας με αλλαγές από το Git, αλλά αφήνουμε το αποθετήριο δεδομένων Git αμετάβλητο.
Για την πλήρη δέσμη ενεργειών, ανατρέξτε στο θέμα Ενημέρωση χώρου εργασίας από το Git.
- Συνδεθείτε στο Git και λάβετε έλεγχο ταυτότητας.
- Καλέστε το API Λήψης κατάστασης για να δημιουργήσετε την ενημέρωση από το σώμα της αίτησης Git.
- Καλέστε την Ενημέρωση από το Git API για να ενημερώσετε τον χώρο εργασίας με δεσμεύσεις που προωθούνται στη συνδεδεμένη διακλάδωση.
Δέσμευση όλων
Αυτή η ενότητα παρέχει μια αναλυτική περιγραφή του τρόπου δέσμευσης όλων των αλλαγών μέσω προγραμματισμού από τον χώρο εργασίας στο Git.
Για την πλήρη δέσμη ενεργειών, ανατρέξτε στο θέμα Δέσμευση όλων των αλλαγών στο Git.
- Συνδεθείτε στο Git και λάβετε έλεγχο ταυτότητας.
- Σύνδεση στον χώρο εργασίας.
- Καλέστε το API REST Δέσμευση στο Git .
- Λάβετε το OperationId μεγάλης διάρκειας για ανίχνευση της κατάστασης της λειτουργίας.
Επιλεκτική δέσμευση
Αυτή η ενότητα περιγράφει τα βήματα που εμπλέκονται στη δέσμευση μόνο συγκεκριμένων αλλαγών από τον χώρο εργασίας στο Git.
Για την πλήρη δέσμη ενεργειών, ανατρέξτε στο θέμα Δέσμευση αλλαγών στο Git.
- Συνδεθείτε στο Git και λάβετε έλεγχο ταυτότητας.
- Σύνδεση στον χώρο εργασίας.
- Καλέστε το API Λήψη κατάστασης για να δείτε ποια στοιχεία έχουν αλλάξει.
- Επιλέξτε τα συγκεκριμένα στοιχεία για δέσμευση.
- Καλέστε την Δέσμευση στο Git API για να πραγματοποιήσετε τις επιλεγμένες αλλαγές από τον χώρο εργασίας στη συνδεδεμένη απομακρυσμένη διακλάδωση.
Παρακολούθηση της προόδου των λειτουργιών μεγάλης διάρκειας
Για την πλήρη δέσμη ενεργειών, ανατρέξτε στο θέμα Δημοσκόπηση μιας λειτουργίας μεγάλης διάρκειας.
- Ανακτήστε το operationId από την ενημέρωση από το Git ή τη δέσμη ενεργειών Δέσμευση στο Git .
- Καλέστε το API Λήψη κατάστασης LRO σε καθορισμένα διαστήματα (σε δευτερόλεπτα) και εκτυπώστε την κατάσταση.
Ζητήματα προς εξέταση και περιορισμοί
- Η ενοποίηση Git με τη χρήση API υπόκειται στους ίδιους περιορισμούς όπως το περιβάλλον εργασίας χρήστη ενοποίησης Git.
- Η κύρια υπηρεσία δεν υποστηρίζεται.
- Η ανανέωση ενός σημασιολογικού μοντέλου με χρήση του API Βελτιωμένης ανανέωσης προκαλεί μια διαφορά Git μετά από κάθε ανανέωση.