Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Saiba como configurar seus pipelines do Azure DevOps para fornecer autenticação para comandos da CLI do Databricks e chamadas de API em sua automação.
Autenticação do Azure DevOps
O gerenciamento da autenticação (própria e de terceiros) no Azure DevOps é feito com conexões de serviço. No portal do Azure DevOps, você pode acessar conexões de serviço em qualquer página do projeto em Configurações do projeto.
Para autenticar e autorizar o acesso à CLI do Azure Databricks a partir dos recursos do Azure DevOps, use o tipo de conexão de serviço do Azure Resource Manager. Para esse tipo, escolha um dos seguintes métodos de autenticação:
- Federação de identidades de carga de trabalho do Microsoft Entra
- Usa o protocolo OpenID Connect (OIDC) para adquirir tokens em nome de uma entidade de serviço.
- Requer que você configure os problemas gerados pelo Azure DevOps e o identificador de assunto com a entidade de serviço que você pretende usar.
- Mecanismo de autenticação aplicável: CLI do Azure.
- Entidade de serviço Microsoft Entra
- Usa um ID de cliente e um segredo de cliente do MS Entra para gerar um token OAuth de curta duração.
- Requer que você gere um segredo para a entidade de serviço que você pretende usar para a conexão de serviço.
- Mecanismos de autenticação aplicáveis: CLI do Azure, segredos de cliente do Microsoft Entra.
- Identidade gerenciada do Microsoft Entra ID
- Usa a identidade atribuída ao recurso (como computação) no qual a CLI é executada. No contexto do Azure DevOps, isso só é relevante se você estiver usando corredores autohospedados. Consulte Criar uma ligação de serviço do Azure Resource Manager para uma VM que utiliza uma identidade gerida.
- Mecanismos de autenticação aplicáveis: CLI do Azure, identidades gerenciadas do Microsoft Entra (anteriormente chamadas de "MSI").
Depois de escolher o mecanismo de autenticação que melhor corresponde às necessidades do seu projeto, você deve configurá-lo em sua definição de pipeline do Azure DevOps (pipeline.yml) para trabalhar com a CLI do Azure Databricks.
Configurar seu pipeline de DevOps do Azure para usar a CLI do Azure para autenticação
Por padrão, a CLI do Azure Databricks usará a CLI do Azure como o mecanismo para autenticar com o Azure Databricks.
Observe que usar a CLI do Azure para autenticação requer que todas as chamadas para a CLI do Azure Databricks sejam feitas em um AzureCLI@2 task, o que significa que não há como compartilhar uma sessão autenticada em tarefas subsequentes. Cada tarefa é autenticada independentemente, o que introduz latência à medida que são executadas.
A seguinte configuração de exemplo do Azure Pipelines usa a CLI do Azure para autenticar e executar o comando da CLI bundle deploy do 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
Ao configurar seu pipeline do Azure DevOps para usar a CLI do Azure para executar comandos da CLI do Azure Databricks, faça o seguinte:
- Use
azureSubscriptionpara configurar a conexão de serviço que você deseja usar. - Configure
useGlobalConfigpara usar o padrãoAZURE_CONFIG_FILEporque osdatabricks bundlecomandos usam filtragem de variáveis de ambiente para subprocessos. Se isso não for definido, esses subprocessos não poderão encontrar os detalhes da sessão autenticada. - Se ela ainda não tiver sido exportada (como em uma etapa anterior ou na configuração do pacote), exporte a
DATABRICKS_HOSTvariável de ambiente.
Configurar seu pipeline de DevOps do Azure para usar um segredo de cliente do Microsoft Entra para autenticação
Se você não quiser usar a CLI do Azure para autenticação porque ela adiciona muita latência ou porque precisa usar a CLI do Azure em um tipo de tarefa diferente, use um segredo de cliente do Microsoft Entra. Os detalhes de autenticação devem ser recuperados da conexão de serviço, portanto, você deve usar a AzureCLI@2 tarefa na declaração do seu pipeline.
Use a AzureCLI@2 tarefa para recuperar a ID do cliente e o segredo do cliente da conexão de serviço e exporte-os como variáveis de ambiente. As tarefas subsequentes podem usá-los diretamente. Para um exemplo, veja Utilize uma entidade de serviço do Microsoft Entra para gerir pastas Git do Databricks.
A seguinte configuração de exemplo do Azure Pipelines usa um segredo de cliente do Microsoft Entra para autenticar e executar o comando da CLI bundle deploy do 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
Ao configurar seu pipeline de DevOps do Azure para usar os segredos do cliente Microsoft Entra para executar comandos da CLI do Azure Databricks, faça o seguinte:
- Configure
addSpnToEnvironmentpara exportar variáveis de ambiente relevantes para o script embutido. - O script inline exporta as variáveis de ambiente com escopo de tarefa como variáveis de ambiente com escopo de trabalho, utilizando nomes que a CLI do Azure Databricks deteta automaticamente.
- Se ela ainda não tiver sido exportada (como em uma etapa anterior ou na configuração do pacote), exporte a
DATABRICKS_HOSTvariável de ambiente. - Se você marcar a
ARM_CLIENT_SECRETvariável de ambiente comissecret=true, deverá adicioná-la explicitamente a cada etapa subsequente que precisar dela.- Se você não fizer isso, a
ARM_CLIENT_SECRETvariável de ambiente estará acessível a todas as etapas subsequentes. - A
ARM_CLIENT_SECRETvariável de ambiente é mascarada na saída, independentemente da configuração.
- Se você não fizer isso, a
Configure seu pipeline do Azure DevOps para usar uma identidade gerenciada do Microsoft Entra para autenticação
Como a autenticação de identidade gerenciada do Azure depende da configuração da máquina virtual ou do contêiner para garantir que a CLI do Azure Databricks seja executada sob a identidade correta, sua configuração de pipeline do Azure DevOps não exige que você especifique a AzureCLI@2 tarefa.
A seguinte configuração de exemplo do Azure Pipelines usa uma identidade gerenciada do Microsoft Entra para autenticar e executar o comando da CLI bundle deploy do 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
Ao configurar seu pipeline do Azure DevOps para usar as identidades gerenciadas do Microsoft Entra para executar comandos da CLI do Azure Databricks, faça o seguinte:
- A identidade gerenciada do Microsoft Entra deve receber a função "Colaborador" no espaço de trabalho Databricks que ele acessará.
- O valor da
DATABRICKS_AZURE_RESOURCE_IDvariável de ambiente é encontrado em Propriedades para a instância do Azure Databricks no portal do Azure. - O valor da
ARM_CLIENT_IDvariável de ambiente é o ID do cliente da identidade gerenciada.
Observação
Se a DATABRICKS_HOST variável de ambiente não for especificada nessa configuração, o valor será inferido de DATABRICKS_AZURE_RESOURCE_ID.
Instalar a CLI do Azure Databricks a partir do pipeline do Azure Pipelines
Depois de configurar seus mecanismos de autenticação preferidos, você deve instalar a CLI do Azure Databricks no host ou agente que executará os comandos da CLI do Azure Databricks.
# Install Databricks CLI
- script: |
curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh
displayName: 'Install Databricks CLI'
Sugestão
- Se você não quiser instalar automaticamente a versão mais recente da CLI do Azure Databricks, substitua
mainna URL do instalador por uma versão específica (por exemplo,v0.224.0).
Melhores práticas
O Databricks recomenda que você use a federação de identidades de carga de trabalho do Microsoft Entra como o método de autenticação preferido. Ele não depende de segredos e é mais seguro do que outros métodos de autenticação. Ele funciona automaticamente com a
AzureCLI@2tarefa sem qualquer configuração manual.Para obter mais detalhes, consulte Criar uma conexão de serviço do Azure Resource Manager que usa a federação de identidades de carga de trabalho.