Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Cette page explique comment configurer vos pipelines Azure DevOps pour authentifier l’interface CLI Databricks et passer des appels d’API à Azure Databricks.
Avant de commencer
Effectuez ces étapes avant de configurer l’authentification Azure DevOps :
Créez le principal de service dans Azure et ajoutez-le à votre espace de travail Azure Databricks avec les autorisations appropriées. Sans cette étape, l’authentification échoue même si votre pipeline est configuré correctement.
Pour les principaux de service managé Microsoft Entra ID, créez une application Microsoft Entra ID dans Azure, puis ajoutez-la à votre espace de travail. Consultez principaux de services et Gérer les principaux de services.
Ajoutez une étape à votre pipeline pour installer l’interface CLI Databricks sur l’agent :
- script: | curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh displayName: 'Install Databricks CLI'Conseil / Astuce
Pour épingler l’installation de l’interface CLI à une version spécifique au lieu d’utiliser la dernière version, remplacez
mainpar une balise de version (par exemple).v0.224.0
Choisir une méthode d’authentification
Azure DevOps gère l’authentification par le biais de connexions de service. Accédez-y dans le portail Azure DevOps sousconnexions du service Paramètres >.
Pour authentifier l’interface CLI Databricks, utilisez le type de connexion de service Azure Resource Manager avec l’une des méthodes suivantes :
| Méthode | Descriptif | Idéal pour |
|---|---|---|
| Fédération d'identité des charges de travail (recommandée) | Utilise OpenID Connect (OIDC) pour acquérir des jetons. Nécessite la configuration de l’émetteur et de l’identificateur d’objet générés par Azure DevOps avec votre principal de service. | Authentification sécurisée et sans secret |
| Principal de service avec secret client | Utilise un ID client et un secret pour générer des jetons OAuth de courte durée. Nécessite la génération d’un secret pour le principal de service. | Scénarios nécessitant des informations d’identification partagées entre les tâches |
| Identité managée | Utilise l’identité affectée à la machine virtuelle ou au conteneur exécutant le pipeline. Applicable uniquement aux agents auto-hébergés. Consultez la documentation Azure. | Agents hébergés localement avec des identités affectées |
Remarque
Utilisez la fédération des identités de charge de travail lorsque cela est possible. Il ne s’appuie pas sur des secrets, il est donc plus sécurisé que d’autres méthodes. Elle fonctionne automatiquement avec la AzureCLI@2 tâche sans configuration manuelle. Consultez Créer une connexion de service qui utilise la fédération d’identité de charge de travail.
Configurer l’authentification Azure CLI
L’interface CLI Databricks utilise Azure CLI pour l’authentification par défaut. Toutes les commandes CLI Databricks doivent s’exécuter à l’intérieur d’une AzureCLI@2 tâche, ce qui signifie que chaque tâche s’authentifie indépendamment. Cela introduit une certaine latence, mais nécessite une configuration minimale.
- task: AzureCLI@2
inputs:
azureSubscription: <your-service-connection-name>
useGlobalConfig: true
scriptType: bash
scriptLocation: inlineScript
inlineScript: |
export DATABRICKS_HOST=https://adb-<workspace-id>.<region>.azuredatabricks.net
databricks bundle deploy
Mettez à jour ces valeurs :
-
azureSubscription: nom de votre connexion de service Azure Resource Manager. -
useGlobalConfig:Obligatoire. Garantit que les sous-processus générés pardatabricks bundledes commandes peuvent accéder à la session authentifiée. -
DATABRICKS_HOST: définissez ce paramètre s’il n’est pas déjà défini dans votre configuration d’offre groupée ou dans une étape précédente.
Configurer l’authentification par clé secrète client
Utilisez une clé secrète client lorsque vous devez partager des informations d’identification sur plusieurs tâches ou lorsque l’authentification Azure CLI ajoute trop de latence.
Cette approche récupère les détails d’authentification de la connexion de service dans une tâche, puis les exporte en tant que variables d’environnement limitées au périmètre du travail pour les tâches suivantes.
- task: AzureCLI@2
inputs:
azureSubscription: <your-service-connection-name>
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-<workspace-id>.<region>.azuredatabricks.net
databricks bundle deploy
Remarque :
- La
addSpnToEnvironmentclé exposeservicePrincipalId,servicePrincipalKeyettenantIdau script inline. - Les
##vsocommandes promeuvent les variables limitées aux tâches en variables limitées aux travaux que l'interface CLI de Databricks reconnaît automatiquement. - Par défaut,
ARM_CLIENT_SECRETest accessible à toutes les étapes suivantes. Pour restreindre l’accès, ajoutez-yissecret=truela définition de variable, puis transmettez-la explicitement à chaque étape qui en a besoin. Le secret est masqué dans les journaux, quel que soit ce paramètre.
Pour obtenir un exemple complet, consultez Autoriser un principal de service Microsoft Entra à accéder aux dossiers Git.
Configurer l’authentification d’identité managée
L’authentification d’identité managée s’appuie sur la configuration de la machine virtuelle ou du conteneur plutôt que sur les tâches de pipeline. Cette méthode ne nécessite pas la AzureCLI@2 tâche.
- script: |
export DATABRICKS_AZURE_RESOURCE_ID=/subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Databricks/workspaces/<workspace-name>
export ARM_CLIENT_ID=<managed-identity-client-id>
export ARM_USE_MSI=true
export DATABRICKS_HOST=https://adb-<workspace-id>.<region>.azuredatabricks.net
databricks current-user me
Mettez à jour ces valeurs :
-
DATABRICKS_AZURE_RESOURCE_ID: recherchez cette valeur sous Propriétés de votre espace de travail dans le portail Azure. -
ARM_CLIENT_ID: ID client de l’identité managée. -
DATABRICKS_HOST: facultatif. Si elle n’est pas définie, la valeur est déduite deDATABRICKS_AZURE_RESOURCE_ID.
L’identité managée doit avoir le rôle Contributeur sur l’espace de travail Azure Databricks.