Sdílet prostřednictvím


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:

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:

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:

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.

  1. 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
        }
    }
    
  2. 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
    
  3. 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 "{}"
    
  4. 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.

  1. Přihlaste se k Gitu a získejte ověřování.
  2. Voláním rozhraní GET Status API se sestaví aktualizace z textu požadavku Gitu.
  3. 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.

  1. Přihlaste se k Gitu a získejte ověřování.
  2. Připojte se k pracovnímu prostoru.
  3. Volání potvrzení do rozhraní REST API Gitu
  4. 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.

  1. Přihlaste se k Gitu a získejte ověřování.
  2. Připojte se k pracovnímu prostoru.
  3. Voláním rozhraní API pro získání stavu zjistíte, které položky se změnily.
  4. Vyberte konkrétní položky, které chcete potvrdit.
  5. 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.

  1. Načtěte id operace z aktualizace z Gitu nebo potvrzení do skriptu Git.
  2. 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.