Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Aprenda a configurar las canalizaciones de Azure DevOps para proporcionar autenticación para los comandos de la CLI de Databricks y las llamadas API en la automatización.
Autenticación de Azure DevOps
La administración de la autenticación (de Microsoft y de terceros) en Azure DevOps se realiza con conexiones de servicio. En el portal de Azure DevOps, puede acceder a las conexiones de servicio en cualquier página del proyecto en Configuración del proyecto.
Para autenticar y autorizar el acceso de la CLI de Azure Databricks desde recursos de Azure DevOps, use el tipo de conexión de servicio de Azure Resource Manager. Para este tipo, elija uno de los métodos de autenticación siguientes:
- Federación de identidades de carga de trabajo de Microsoft Entra
- Usa el protocolo OpenID Connect (OIDC) para adquirir tokens en nombre de una entidad de servicio.
- Requiere que configure las incidencias generadas por Azure DevOps y el identificador del firmante con la entidad de servicio que desea usar.
- Mecanismo de autenticación aplicable: CLI de Azure.
- Entidad de servicio de Microsoft Entra
- Usa un identificador de cliente y un secreto de cliente de MS Entra para generar un token de OAuth de corta duración.
- Requiere que genere un secreto para la entidad de servicio que va a usar para la conexión de servicio.
- Mecanismos de autenticación aplicables: CLI de Azure, secretos de cliente de Microsoft Entra.
- Identidad administrada de Microsoft Entra ID
- Usa la identidad asignada al recurso (como computación) en el que se ejecuta la CLI. En el contexto de Azure DevOps, esto solo es relevante si usa ejecutores autohospedados. Consulte Creación de una conexión de servicio de Azure Resource Manager a una máquina virtual que usa una identidad administrada.
- Mecanismos de autenticación aplicables: CLI de Azure, identidades administradas de Microsoft Entra (anteriormente denominadas "MSI").
Después de elegir el mecanismo de autenticación que mejor se adapte a las necesidades del proyecto, debe configurarlo en la definición de canalización de Azure DevOps (pipeline.yml) para que funcione con la CLI de Azure Databricks.
Configura la canalización de Azure DevOps para usar la CLI de Azure para la autenticación
De forma predeterminada, la CLI de Azure Databricks usará la CLI de Azure como mecanismo para autenticarse con Azure Databricks.
Tenga en cuenta que el uso de la CLI de Azure para la autenticación requiere que todas las llamadas a la CLI de Azure Databricks se realicen en , AzureCLI@2 tasklo que significa que no hay ninguna manera de compartir una sesión autenticada en tareas posteriores. Cada tarea se autentica de forma independiente, lo que introduce la latencia a medida que se ejecutan.
La siguiente configuración de ejemplo de Azure Pipelines usa la CLI de Azure para autenticarse y ejecutar el comando de la CLI bundle deploy de Azure Databricks:
- 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
Al configurar la canalización de Azure DevOps para usar la CLI de Azure para ejecutar comandos de la CLI de Azure Databricks, haga lo siguiente:
- Use
azureSubscriptionpara configurar la conexión de servicio que desea usar. - Configure
useGlobalConfigpara usar el valor predeterminadoAZURE_CONFIG_FILEporque los comandosdatabricks bundleutilizan filtrado de variables de entorno para subprocesos. Si no se establece, estos subprocesos no podrán encontrar los detalles de la sesión autenticada. - Si aún no se exporta (por ejemplo, en un paso anterior o en la configuración de agrupación), exporte la
DATABRICKS_HOSTvariable de entorno.
Configura la canalización de Azure DevOps para usar un secreto de cliente de Microsoft Entra para la autenticación
Si no desea usar la CLI de Azure para la autenticación porque agrega demasiada latencia o porque necesita usar la CLI de Azure en otro tipo de tarea, use un secreto de cliente de Microsoft Entra. Los detalles de autenticación deben recuperarse de la conexión del servicio, por lo que debe usar la tarea AzureCLI@2 en la declaración de la canalización.
Use la AzureCLI@2 tarea para recuperar el identificador de cliente y el secreto de cliente de la conexión de servicio y, a continuación, exportarlos como variables de entorno. Las tareas posteriores pueden usarlas directamente. Para ver un ejemplo, consulte Uso de una entidad de servicio de Microsoft Entra para autenticar el acceso a las carpetas de Git de Azure Databricks.
La siguiente configuración de ejemplo de Azure Pipelines usa un secreto de cliente de Microsoft Entra para autenticarse y ejecutar el comando de la CLI bundle deploy de Azure Databricks:
- 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
Al configurar la canalización de Azure DevOps para usar los secretos de cliente de Microsoft Entra para ejecutar comandos de la CLI de Azure Databricks, haga lo siguiente:
- Configure
addSpnToEnvironmentpara exportar las variables de entorno pertinentes al script insertado. - El script insertado exporta las variables de entorno con ámbito de tarea a variables de entorno con ámbito de trabajo, bajo nombres que la CLI de Azure Databricks detecta automáticamente.
- Si aún no se exporta (por ejemplo, en un paso anterior o en la configuración de agrupación), exporte la
DATABRICKS_HOSTvariable de entorno. - Si marca la
ARM_CLIENT_SECRETvariable de entorno conissecret=true, debe agregarla explícitamente a cada paso posterior que lo necesite.- Si no lo hace, la variable de entorno
ARM_CLIENT_SECRETserá accesible para cada paso siguiente. - La
ARM_CLIENT_SECRETvariable de entorno se enmascara en la salida independientemente de la configuración.
- Si no lo hace, la variable de entorno
Configuración de la canalización de Azure DevOps para usar una identidad administrada de Microsoft Entra para la autenticación
Dado que la autenticación de identidad administrada de Azure depende de la configuración de la máquina virtual o del contenedor para garantizar que la CLI de Azure Databricks se ejecuta bajo la identidad correcta, la configuración de canalización de Azure DevOps no requiere que especifique la AzureCLI@2 tarea.
La siguiente configuración de ejemplo de Azure Pipelines usa una identidad administrada de Microsoft Entra para autenticarse y ejecutar el comando de la CLI bundle deploy de Azure Databricks:
- 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
Al configurar la canalización de Azure DevOps para usar las identidades administradas de Microsoft Entra para ejecutar comandos de la CLI de Azure Databricks, haga lo siguiente:
- A la identidad administrada de Microsoft Entra se le debe asignar el rol "Colaborador" en el área de trabajo de Databricks a la que accederá.
- El valor de la
DATABRICKS_AZURE_RESOURCE_IDvariable de entorno se encuentra en Propiedades para la instancia de Azure Databricks en Azure Portal. - El valor de la
ARM_CLIENT_IDvariable de entorno es el identificador de cliente de la identidad administrada.
Nota:
Si la DATABRICKS_HOST variable de entorno no se especifica en esta configuración, el valor se deducirá de DATABRICKS_AZURE_RESOURCE_ID.
Instale la CLI de Azure Databricks desde la canalización de Azure Pipelines
Después de configurar los mecanismos de autenticación preferidos, debe instalar la CLI de Azure Databricks en el host o agente que ejecutará los comandos de la CLI de Azure Databricks.
# Install Databricks CLI
- script: |
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
displayName: 'Install Databricks CLI'
Sugerencia
- Si no desea instalar automáticamente la versión más reciente de la CLI de Azure Databricks, reemplace
mainen la dirección URL del instalador por una versión específica (por ejemplo,v0.224.0).
procedimientos recomendados
Databricks recomienda usar la federación de identidades de carga de trabajo de Microsoft Entra como método de autenticación que prefiera. No se basa en secretos y es más seguro que otros métodos de autenticación. Funciona automáticamente con la
AzureCLI@2tarea sin ninguna configuración manual.Para más información, consulte Creación de una conexión de servicio de Azure Resource Manager que use la federación de identidades de carga de trabajo.