Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 eerste- en derdepartijverificatie in Azure DevOps gebeurt met serviceverbindingen. In de Azure DevOps-portal hebt u toegang tot serviceverbindingen op elke projectpagina onder Project-instellingen.
Als u Azure Databricks CLI-toegang wilt verifiëren en autoriseren vanuit Azure DevOps-resources, gebruikt u de Azure Resource Manager serviceverbindingstype. Kies voor dit type een van de volgende verificatiemethoden:
- Microsoft Entra workload-identiteitsfederatie
- Maakt gebruik van het OpenID Connect-protocol (OIDC) om tokens te verkrijgen namens een service-principal.
- Hiervoor moet u de door Azure DevOps gegenereerde kwesties en onderwerpidentificator 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.
- Microsoft Entra ID-beheerde identiteit
- 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
azureSubscriptionconfigureert u de serviceverbinding die u wilt gebruiken. - Configureer
useGlobalConfigom de standaardAZURE_CONFIG_FILEte gebruiken omdat dedatabricks bundleopdrachten omgevingsvariabele-filtering 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_HOSTomgevingsvariabele.
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
addSpnToEnvironmentom relevante omgevingsvariabelen naar het inline-script te exporteren. - 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_HOSTomgevingsvariabele. - Als u de
ARM_CLIENT_SECRETomgevingsvariabele metissecret=truemarkeert, moet u deze expliciet toevoegen aan elke volgende stap die deze nodig heeft.- Als u dit niet doet, is de
ARM_CLIENT_SECRETomgevingsvariabele toegankelijk voor elke volgende stap. - De
ARM_CLIENT_SECRETomgevingsvariabele 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_IDomgevingsvariabele vindt u onder Eigenschappen voor het Azure Databricks-exemplaar in Azure Portal. - De waarde van de
ARM_CLIENT_IDomgevingsvariabele is de client-id van de beheerde identiteit.
Opmerking
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'
Aanbeveling
- Als u niet automatisch de nieuwste versie van de Azure Databricks CLI wilt installeren, vervangt
mainu deze in de installatie-URL door een specifieke versie (bijvoorbeeldv0.224.0).
Beste praktijken
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@2taak zonder handmatige configuratie.Zie Een Azure Resource Manager-serviceverbinding maken die gebruikmaakt van federatie van workloadidentiteit voor meer informatie.