Automatizácia integrácie systému Git pomocou rozhraní API
Nástroj na integráciu systému Microsoft Fabric Git umožňuje tímom spolupracovať pomocou správy zdroja pri vytváraní efektívneho a opätovne použiteľného procesu vydávania obsahu služby Fabric.
Pomocou rozhraní REST API služby Microsoft Fabric môžete automatizovať postupy a procesy služby Fabric, aby ste dokončili úlohy rýchlejšie a s menším počtom chýb. Táto účinnosť vedie k úsporám nákladov a vyššej produktivite.
Tento článok popisuje, ako používať rozhrania REST API na integráciu Git na automatizáciu integrácie systému Git v službe Microsoft Fabric.
Požiadavky
Ak chcete pracovať s rozhraniami API služby Fabric Git, potrebujete:
Rovnaké predpoklady potrebujete na používanie integrácie Git v používateľskom rozhraní.
Token Microsoft Entra pre službu Fabric. Použite tento token v hlavičke oprávnenia volania rozhrania API. Informácie o tom, ako získať token, nájdete v téme Stručný úvod k rozhraniu API služby Fabric.
Rozhrania REST API môžete použiť bez prostredia PowerShell, ale skripty v tomto článku používajú prostredie PowerShell. Ak chcete spustiť skripty, musíte vykonať nasledujúce kroky:
- Nainštalujte prostredie PowerShell.
- Nainštalujte modul Azure PowerShell Az.
Funkcie rozhrania API na integráciu so službou Git
Rozhrania REST API pre integráciu so službou Git vám môžu pomôcť dosiahnuť nepretržitú integráciu a priebežné doručovanie vášho obsahu (CI/CD). Tu je niekoľko príkladov toho, čo možno urobiť pomocou rozhraní API:
Pozrite si, ktoré položky obsahujú prichádzajúce zmeny a ktoré položky majú zmeny, ktoré sa ešte nezaviazali do služby Git s rozhraním API stavu systému Git.
Získajte podrobnosti o pripojení pre zadaný pracovný priestor.
Pripojte a odpojte konkrétny pracovný priestor od odkladacieho priestoru Git a vetvy, ktorá je k nemu pripojená.
Aktualizujte moje poverenia systému Git a aktualizujte podrobnosti konfigurácie poverení systému Git.
Získajte moje poverenia Git, aby ste získali podrobnosti o konfigurácii poverení systému Git.
Inicializácia pripojenia pre pracovný priestor, ktorý je pripojený k systému Git.
Potvrďte zmeny vykonané v pracovnom priestore na pripojenej vzdialenej vetve.
Aktualizujte pracovný priestor potvrdeniami doručenými do pripojenej vetvy.
Príklady
Nasledujúce skripty PowerShell môžete použiť na pochopenie vykonávania niekoľkých bežných procesov automatizácie. Ak chcete zobraziť alebo skopírovať text v ukážke prostredia PowerShell, použite prepojenia v tejto časti. Môžete si tiež pozrieť všetky príklady v odkladacom priestore Git na integráciu fabric Git.
Pripojenie a aktualizácia
Táto časť popisuje kroky spojené s pripojením a aktualizáciou pracovného priestoru so systémom Git.
Úplný skript nájdete v téme Pripojenie a aktualizácia z Git.
Prihláste sa a získajte prístupový token – prihláste sa do služby Fabric ako používateľ (nie ako objekt služby). Na prihlásenie použite príkaz Connect-AzAccount. Ak chcete získať prístupový token, použite príkaz Get-AzAccessToken .
Váš kód by mal vyzerať približne takto:
$global:resourceUrl = "https://api.fabric.microsoft.com" $global:fabricHeaders = @{} function SetFabricHeaders() { #Login to Azure Connect-AzAccount | Out-Null # Get authentication $fabricToken = (Get-AzAccessToken -AsSecureString -ResourceUrl $global:resourceUrl).Token $global:fabricHeaders = @{ 'Content-Type' = "application/json" 'Authorization' = "Bearer {0}" -f $fabricToken } }
Zavolajte rozhranie API Connect , aby ste mohli pripojiť pracovný priestor k odkladaciemu priestoru a vetve 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
Volajte rozhranie API na inicializáciu pripojenia na inicializáciu pripojenia medzi pracovným priestorom a odkladacím priestorom/vetvou 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 "{}"
Na základe odpovede z rozhrania API na inicializáciu pripojenia zavolajte buď aktualizáciu z rozhrania Git API, aby ste dokončili aktualizáciu, alebo ak nie je potrebná žiadna akcia.
Nasledujúci skript aktualizuje a monitoruje priebeh:
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")) }
Aktualizácia z Git
V tejto časti popíšeme kroky spojené s aktualizáciou pracovného priestoru zmenami v systéme Git. V tomto skripte aktualizujeme položky pracovného priestoru zmenami zo systému Git, odkladací priestor Git však necháme nezmenený.
Úplný skript nájdete v téme Aktualizácia pracovného priestoru z Git.
- Prihláste sa do systému Git a získajte overenie.
- Volajte rozhranie Get Status API a vytvorte aktualizáciu z tela požiadavky Git.
- Volaním aktualizácie z rozhrania Git API aktualizujte pracovný priestor potvrdeniami doručenými do pripojenej vetvy.
Potvrdiť všetko
V tejto časti sa uvádzajú podrobné informácie o tom, ako pomocou programovania potvrdiť všetky zmeny z pracovného priestoru do systému Git.
Úplný skript nájdete v téme Potvrdenie všetkých zmien do systému Git.
- Prihláste sa do systému Git a získajte overenie.
- Pripojenie k pracovnému priestoru.
- Volajte tlačidlo Potvrdiť v rozhraní Git REST API.
- Získajte hodnotu Long Running OperationId na vzorkovanie stavu operácie.
Selektívne potvrdenie
Táto časť popisuje kroky spojené s záväzkom iba konkrétnych zmien z pracovného priestoru do systému Git.
Úplný skript nájdete v téme Potvrdenie zmien v Git.
- Prihláste sa do systému Git a získajte overenie.
- Pripojenie k pracovnému priestoru.
- Ak chcete zistiť, ktoré položky pracovného priestoru sa zmenili, zavolajte rozhranie Get status API.
- Vyberte konkrétne položky, ktoré sa majú potvrdiť.
- Vyvolajte tlačidlo Potvrdiť v rozhraní Git API na potvrdenie vybratých zmien z pracovného priestoru k pripojenej vzdialenej vetve.
Monitorovanie priebehu dlhotrvajúcich operácií
Úplný skript nájdete v téme Anketa dlhotrvajúcej operácie.
- Načítajte operationId z Aktualizovať zo systému Git alebo zo skriptu Potvrdiť v systéme Git .
- Zavolajte rozhranie Get LRO Status API v zadaných intervaloch (v sekundách) a vytlačte stav.
Dôležité informácie a obmedzenia
- Na integráciu systému Git pomocou rozhraní API sa vzťahujú rovnaké obmedzenia ako používateľské rozhranie integrácie Git.
- Objekt služby nie je podporovaný.
- Obnovenie sémantického modelu pomocou rozšíreného rozhrania API obnovenia spôsobí po každom obnovení rozdiel Git.