Automatizace integrace Gitu pomocí rozhraní API
Integrační nástroj Microsoft Fabric Git umožňuje týmům spolupracovat pomocí správy zdrojového kódu k vytvoření efektivního a opakovaně použitelného procesu vydávání obsahu prostředků infrastruktury.
Pomocí rozhraní REST API Microsoft Fabric můžete automatizovat postupy a procesy infrastruktury, abyste mohli provádět úkoly rychleji a s menším počtem chyb. Tato efektivita vede k úsporám nákladů a vyšší produktivitě.
Tento článek popisuje, jak pomocí rozhraní REST API integrace Gitu automatizovat integraci Gitu v Microsoft Fabric.
Požadavky
Pokud chcete pracovat s rozhraními API Gitu pro Prostředky infrastruktury, potřebujete:
Stejné požadavky musíte použít integraci Gitu v uživatelském rozhraní.
Token Microsoft Entra pro službu Fabric. Tento token použijte v autorizační hlavičce volání rozhraní API. Informace o tom, jak získat token, najdete v rychlém startu s rozhraním API Fabric.
Rozhraní REST API můžete použít bez PowerShellu, ale skripty v tomto článku používají PowerShell. Pokud chcete skripty spustit, musíte provést následující kroky:
- Nainstalujte PowerShell.
- Nainstalujte modul Az Azure PowerShellu.
Funkce rozhraní API pro integraci Gitu
Rozhraní REST API integrace Gitu vám můžou pomoct dosáhnout kontinuální integrace a průběžného doručování (CI/CD) vašeho obsahu. Tady je několik příkladů toho, co je možné provést pomocí rozhraní API:
Podívejte se, které položky mají příchozí změny a které položky mají změny, které ještě nebyly potvrzeny do Gitu pomocí rozhraní API pro stav Gitu.
Získejte podrobnosti o připojení pro zadaný pracovní prostor.
Připojte a odpojte konkrétní pracovní prostor od úložiště Git a větve, ke kterému je připojený.
Aktualizujte svoje přihlašovací údaje Gitu, aby se aktualizovaly podrobnosti konfigurace přihlašovacích údajů Gitu.
Získejte přihlašovací údaje Gitu, abyste získali podrobnosti o konfiguraci přihlašovacích údajů Gitu.
Inicializace připojení pro pracovní prostor připojený k Gitu
Potvrďte změny provedené v pracovním prostoru do připojené vzdálené větve.
Aktualizujte pracovní prostor potvrzeními nasdílenými do připojené větve.
Příklady
Následující skripty PowerShellu vám pomohou pochopit, jak provádět několik běžných procesů automatizace. Pokud chcete zobrazit nebo zkopírovat text v ukázce PowerShellu, použijte odkazy v této části. Můžete se také podívat na všechny příklady v úložišti Git s ukázkami integrace Infrastruktury Gitu.
Připojení a aktualizace
Tato část popisuje kroky spojené s připojením a aktualizací pracovního prostoru pomocí Gitu.
Úplný skript najdete v tématu Připojení a aktualizace z Gitu.
Přihlášení a získání přístupového tokenu – Přihlaste se k Fabric jako uživatel (ne instanční objekt). Přihlaste se pomocí příkazu Connect-AzAccount. Pokud chcete získat přístupový token, použijte příkaz Get-AzAccessToken .
Váš kód by měl vypadat přibližně takto:
$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 } }
Voláním rozhraní CONNECT API připojte pracovní prostor k úložišti a větvi Gitu.
# 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
Voláním rozhraní API pro inicializaci připojení inicializujete připojení mezi pracovním prostorem a úložištěm nebo větví Gitu.
# 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ákladě odpovědi z rozhraní API pro inicializaci připojení zavolejte aktualizaci z rozhraní API Gitu , aby se aktualizace dokončila, nebo nic neprovádějte, pokud se nevyžaduje žádná akce.
Následující skript aktualizuje a sleduje průběh:
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")) }
Aktualizace z Gitu
V této části popisujeme kroky, které se týkají aktualizace pracovního prostoru pomocí změn z Gitu. V tomto skriptu aktualizujeme položky pracovního prostoru změnami z Gitu, ale úložiště Git ponecháme beze změny.
Úplný skript najdete v tématu Aktualizace pracovního prostoru z Gitu.
- Přihlaste se k Gitu a získejte ověřování.
- Voláním rozhraní GET Status API se sestaví aktualizace z textu požadavku Gitu.
- Voláním rozhraní API pro aktualizaci z Gitu aktualizujte pracovní prostor potvrzeními nasdílenými do připojené větve.
Potvrdit vše
Tato část obsahuje podrobný popis toho, jak programově potvrdit všechny změny z pracovního prostoru na Git.
Úplný skript najdete v tématu Potvrzení všech změn do Gitu.
- Přihlaste se k Gitu a získejte ověřování.
- Připojte se k pracovnímu prostoru.
- Volání potvrzení do rozhraní REST API Gitu
- Získejte ID operace Long Running pro dotazování stavu operace.
Selektivní potvrzení
Tato část popisuje kroky, které se týkají potvrzení pouze konkrétních změn z pracovního prostoru do Gitu.
Úplný skript najdete v tématu Potvrzení změn v Gitu.
- Přihlaste se k Gitu a získejte ověřování.
- Připojte se k pracovnímu prostoru.
- Voláním rozhraní API pro získání stavu zjistíte, které položky se změnily.
- Vyberte konkrétní položky, které chcete potvrdit.
- Voláním příkazu Commit to Git API potvrďte vybrané změny z pracovního prostoru do připojené vzdálené větve.
Monitorování průběhu dlouhotrvajících operací
Úplný skript najdete v tématu Dotazování dlouhotrvající operace.
- Načtěte id operace z aktualizace z Gitu nebo potvrzení do skriptu Git.
- Zavolejte rozhraní API pro získání stavu LRO v zadaných intervalech (v sekundách) a vytiskněte stav.
Úvahy a omezení
- Integrace Gitu pomocí rozhraní API podléhá stejným omezením jako uživatelské rozhraní integrace Gitu.
- Instanční objekt není podporovaný.
- Aktualizace sémantického modelu pomocí rozhraní API rozšířené aktualizace způsobí rozdíl Gitu po každé aktualizaci.