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.
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
- Gebruikt de identiteit die is toegewezen aan de resource (zoals compute) waarop de CLI wordt uitgevoerd. In de context van Azure DevOps is dit alleen relevant als u zelf-hostende runners gebruikt. Zie Een Azure Resource Manager-serviceverbinding maken met een virtuele machine die gebruikmaakt van een beheerde identiteit.
- Toepasselijke verificatiemechanismen: Azure CLI, door Microsoft Entra beheerde identiteiten (voorheen MSI genoemd).
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 standaardwaardeAZURE_CONFIG_FILE
te gebruiken omdat dedatabricks 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=true
moet 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.
- Als u dit niet doet, is de
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 (bijvoorbeeldv0.224.0
).
Aanbevolen procedures
Databricks raadt u aan microsoft Entra-workloadidentiteitsfederatie te gebruiken als de gewenste verificatiemethode. Het is niet afhankelijk van geheimen en is veiliger dan andere verificatiemethoden. Het werkt automatisch met de
AzureCLI@2
taak zonder handmatige configuratie.Zie Een Azure Resource Manager-serviceverbinding maken die gebruikmaakt van federatie van workloadidentiteit voor meer informatie.