Compartir vía


Autenticación con Azure DevOps en Databricks

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 terceros 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.

Seleccione Conexiones de servicio en Configuración del proyecto en Azure DevOps.

Para autenticar la CLI de Databricks, 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 los problemas generados por Azure DevOps y el identificador de asunto con la entidad de servicio que quiere 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

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.

Configuración de 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 azureSubscription para configurar la conexión de servicio que desea usar.
  • Configure useGlobalConfig para usar el valor predeterminado AZURE_CONFIG_FILE porque los comandos usan el databricks bundle 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_HOST variable de entorno.

Configuración de 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 de servicio, por lo que debe usar la AzureCLI@2 tarea 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 obtener un ejemplo, consulte Uso de una entidad de servicio de Microsoft Entra para administrar carpetas de Git de 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 addSpnToEnvironment para exportar las variables de entorno pertinentes al script insertado.
  • El script insertado exporta las variables de entorno con ámbito de tarea como variables de entorno con ámbito de trabajo bajo nombres que la CLI de Azure Databricks recopila 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_HOST variable de entorno.
  • Si marca la ARM_CLIENT_SECRET variable de entorno con issecret=true, debe agregarla explícitamente a cada paso posterior que lo necesite.
    • Si no lo hace, se podrá acceder a la ARM_CLIENT_SECRET variable de entorno para cada paso posterior.
    • La ARM_CLIENT_SECRET variable de entorno se enmascara en la salida independientemente de la configuración.

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_ID variable de entorno se encuentra en Propiedades para la instancia de Azure Databricks en Azure Portal.
  • El valor de la ARM_CLIENT_ID variable 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.

Instalación de 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 main en la dirección URL del instalador por una versión específica (por ejemplo, v0.224.0).

procedimientos recomendados

Consulte también