Delen via


Verifiëren met Azure DevOps in Databricks

Meer informatie over het configureren van uw Azure DevOps-pijplijnen om verificatie te bieden voor Databricks CLI-opdrachten en API-aanroepen in uw automatisering.

Azure DevOps-verificatie

Het beheren van verificatie (van derden en derden) in Azure DevOps wordt uitgevoerd met serviceverbindingen. In de Azure DevOps-portal hebt u toegang tot serviceverbindingen op elke projectpagina onder Project-instellingen.

Serviceverbindingen selecteren onder Project-instellingen in Azure DevOps

Als u de Databricks CLI wilt verifiëren, gebruikt u het verbindingstype van de Azure Resource Manager-service . Kies voor dit type een van de volgende verificatiemethoden:

  • Identiteitsfederatie van Microsoft Entra-workload
    • Maakt gebruik van het OpenID Connect-protocol (OIDC) om tokens te verkrijgen namens een service-principal.
    • Hiervoor moet u de door Azure DevOps gegenereerde problemen en onderwerp-id configureren met de service-principal die u wilt gebruiken.
    • Toepasselijk verificatiemechanisme: Azure CLI.
  • Microsoft Entra-service-principal
    • Maakt gebruik van een client-id en een MS Entra-clientgeheim om een OAuth-token met korte levensduur te genereren.
    • Hiervoor moet u een geheim genereren voor de service-principal die u wilt gebruiken voor de serviceverbinding.
    • Toepasselijke verificatiemechanismen: Azure CLI, Microsoft Entra-clientgeheimen.
  • Beheerde identiteit van Microsoft Entra ID

Nadat u het verificatiemechanisme hebt gekozen dat het beste overeenkomt met de behoeften van uw project, moet u dit configureren in uw Azure DevOps-pijplijndefinitie (pipeline.yml) om te werken met de Azure Databricks CLI.

Uw Azure DevOps-pijplijn configureren voor het gebruik van de Azure CLI voor verificatie

De Azure Databricks CLI gebruikt standaard de Azure CLI als mechanisme voor verificatie met Azure Databricks.

Houd er rekening mee dat voor het gebruik van de Azure CLI voor verificatie alle aanroepen naar de Azure Databricks CLI moeten worden uitgevoerd in een AzureCLI@2 task, wat betekent dat er geen manier is om een geverifieerde sessie te delen in volgende taken. Elke taak wordt onafhankelijk geverifieerd, waardoor latentie wordt geïntroduceerd wanneer ze worden uitgevoerd.

In de volgende azure Pipelines-voorbeeldconfiguratie wordt de Azure CLI gebruikt om de Azure Databricks CLI-opdracht bundle deploy te verifiëren en uit te voeren:

- task: AzureCLI@2
  inputs:
    azureSubscription: {your-azure-subscription-id-here}
    useGlobalConfig: true
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
      export DATABRICKS_HOST=https://adb...
      databricks bundle deploy

Wanneer u uw Azure DevOps-pijplijn configureert om de Azure CLI te gebruiken om Azure Databricks CLI-opdrachten uit te voeren, gaat u als volgt te werk:

  • Hiermee azureSubscription configureert u de serviceverbinding die u wilt gebruiken.
  • Configureer useGlobalConfig dit om de standaardwaarde AZURE_CONFIG_FILE te gebruiken omdat de databricks bundle opdrachten omgevingsvariabelefiltering gebruiken voor subprocessen. Als dit niet is ingesteld, kunnen deze subprocessen de details van de geverifieerde sessie niet vinden.
  • Als deze nog niet is geëxporteerd (zoals in een vorige stap of in de bundelconfiguratie), exporteert u de DATABRICKS_HOST omgevingsvariabele.

Uw Azure DevOps-pijplijn configureren voor het gebruik van een Microsoft Entra-clientgeheim voor verificatie

Als u de Azure CLI niet wilt gebruiken voor verificatie omdat deze te veel latentie toevoegt of omdat u de Azure CLI in een ander taaktype moet gebruiken, gebruikt u een Microsoft Entra-clientgeheim. De verificatiegegevens moeten worden opgehaald uit de serviceverbinding, dus u moet de AzureCLI@2 taak gebruiken in de declaratie van uw pijplijn.

Gebruik de AzureCLI@2 taak om de client-id en het clientgeheim op te halen uit uw serviceverbinding en exporteer deze vervolgens als omgevingsvariabelen. Volgende taken kunnen ze rechtstreeks gebruiken. Zie Een Microsoft Entra-service-principal gebruiken voor het beheren van Databricks Git-mappen voor een voorbeeld.

In de volgende azure Pipelines-voorbeeldconfiguratie wordt een Microsoft Entra-clientgeheim gebruikt om de Azure Databricks CLI-opdracht bundle deploy te verifiëren en uit te voeren:

- task: AzureCLI@2
  inputs:
    azureSubscription: {your-azure-subscription-id-here}
    addSpnToEnvironment: true
    scriptType: bash
    scriptLocation: inlineScript
    inlineScript: |
      echo "##vso[task.setvariable variable=ARM_CLIENT_ID]${servicePrincipalId}"
      echo "##vso[task.setvariable variable=ARM_CLIENT_SECRET]${servicePrincipalKey}"
      echo "##vso[task.setvariable variable=ARM_TENANT_ID]${tenantId}"

- script: |
    export DATABRICKS_HOST=https://adb...
    databricks bundle deploy

Wanneer u uw Azure DevOps-pijplijn configureert voor het gebruik van de Microsoft Entra-clientgeheimen om Azure Databricks CLI-opdrachten uit te voeren, gaat u als volgt te werk:

  • Configureer addSpnToEnvironment deze om relevante omgevingsvariabelen te exporteren naar het inlinescript.
  • Het inlinescript exporteert de omgevingsvariabelen met taakbereik als omgevingsvariabelen met taakbereik onder namen die automatisch worden opgehaald door de Azure Databricks CLI.
  • Als deze nog niet is geëxporteerd (zoals in een vorige stap of in de bundelconfiguratie), exporteert u de DATABRICKS_HOST omgevingsvariabele.
  • Als u de ARM_CLIENT_SECRET omgevingsvariabele markeert, issecret=truemoet u deze expliciet toevoegen aan elke volgende stap die deze nodig heeft.
    • Als u dit niet doet, is de ARM_CLIENT_SECRET omgevingsvariabele toegankelijk voor elke volgende stap.
    • De ARM_CLIENT_SECRET omgevingsvariabele wordt gemaskeerd in de uitvoer, ongeacht de instelling.

Uw Azure DevOps-pijplijn configureren voor het gebruik van een door Microsoft Entra beheerde identiteit voor verificatie

Omdat verificatie van beheerde identiteiten van Azure afhankelijk is van de virtuele machine of containerconfiguratie om ervoor te zorgen dat de Azure Databricks CLI wordt uitgevoerd onder de juiste identiteit, is uw Azure DevOps-pijplijnconfiguratie niet vereist dat u de AzureCLI@2 taak opgeeft.

In de volgende voorbeeldconfiguratie van Azure Pipelines wordt een door Microsoft Entra beheerde identiteit gebruikt om de Azure Databricks CLI-opdracht bundle deploy te verifiëren en uit te voeren:

- script: |
    export DATABRICKS_AZURE_RESOURCE_ID=/subscriptions/<id>/resourceGroups/<name>/providers/Microsoft.Databricks/workspaces/<name>
    export ARM_CLIENT_ID=eda1f2c4-07cb-4c2c-a126-60b9bafee6d0
    export ARM_USE_MSI=true
    export DATABRICKS_HOST=https://adb...
    databricks current-user me --log-level trace

Wanneer u uw Azure DevOps-pijplijn configureert om de door Microsoft Entra beheerde identiteiten te gebruiken om Azure Databricks CLI-opdrachten uit te voeren, gaat u als volgt te werk:

  • Aan de door Microsoft Entra beheerde identiteit moet de rol Inzender worden toegewezen in de Databricks-werkruimte waartoe deze toegang krijgt.
  • De waarde van de DATABRICKS_AZURE_RESOURCE_ID omgevingsvariabele vindt u onder Eigenschappen voor het Azure Databricks-exemplaar in Azure Portal.
  • De waarde van de ARM_CLIENT_ID omgevingsvariabele is de client-id van de beheerde identiteit.

Notitie

Als de DATABRICKS_HOST omgevingsvariabele niet is opgegeven in deze configuratie, wordt de waarde afgeleid van DATABRICKS_AZURE_RESOURCE_ID.

De Azure Databricks CLI installeren vanuit een Azure Pipelines-pijplijn

Nadat u de gewenste verificatiemechanismen hebt geconfigureerd, moet u de Azure Databricks CLI installeren op de host of agent waarop de Azure Databricks CLI-opdrachten worden uitgevoerd.

# Install Databricks CLI
- script: |
    curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
  displayName: 'Install Databricks CLI'

Tip

  • Als u niet automatisch de nieuwste versie van de Azure Databricks CLI wilt installeren, vervangt main u deze in de installatie-URL door een specifieke versie (bijvoorbeeld v0.224.0).

Aanbevolen procedures

Zie ook