Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Esta página explica como configurar os seus pipelines Azure DevOps para autenticar a CLI Databricks e fazer chamadas API para Azure Databricks.
Antes de começar
Complete estes passos antes de configurar a autenticação Azure DevOps:
Crie o principal de serviço no Azure e adicione-o ao seu espaço de trabalho Azure Databricks com as permissões apropriadas. Sem este passo, a autenticação falha mesmo que o seu pipeline esteja configurado corretamente.
Para os principais serviços geridos do Microsoft Entra ID, crie uma aplicação Microsoft Entra ID no Azure e adicione-a ao seu espaço de trabalho. Consulte os principais de serviço e Gerir os principais de serviço.
Adicione uma etapa ao seu pipeline para instalar a CLI Databricks no agente:
- script: | curl -fsSL https://raw.githubusercontent.com/databricks/setup-cli/main/install.sh | sh displayName: 'Install Databricks CLI'Sugestão
Para fixar a instalação da CLI a uma versão específica em vez de usar a mais recente, substitua
mainpor uma etiqueta de versão (por exemplo,v0.224.0).
Escolha um método de autenticação
O Azure DevOps gere a autenticação através de ligações de serviço. Acede-os no portal Azure DevOps, em Definições>do Projeto, Ligações de Serviço.
Para autenticar a CLI do Databricks, utilize o tipo de ligação de serviço Azure Resource Manager com um destes métodos:
| Método | Description | Melhor para |
|---|---|---|
| Federação de identidade de carga de trabalho (recomendada) | Utiliza OpenID Connect (OIDC) para adquirir tokens. Requer configurar o emissor gerado por Azure DevOps e o identificador de assunto com o seu principal de serviço. | Autenticação segura e sem segredos |
| Principal de serviço com segredo do cliente | Utiliza um ID de cliente e um segredo para gerar tokens OAuth de curta duração. Requer gerar um segredo para o principal do serviço. | Cenários que requerem credenciais partilhadas entre tarefas |
| Identidade gerenciada | Utiliza a identidade atribuída à VM ou contentor que executa o pipeline. Só aplicável a corredores auto-hospedados. Consulte a documentação do Azure. | Corredores auto-hospedados com identidades atribuídas |
Observação
Use a federação de identidades de carga de trabalho sempre que possível. Não depende de segredos, por isso é mais seguro do que outros métodos. Funciona automaticamente com a AzureCLI@2 tarefa, sem configuração manual. Veja Criar uma ligação de serviço que utilize a federação da identidade da carga de trabalho.
Configurar autenticação Azure CLI
A CLI Databricks utiliza por defeito Azure CLI para autenticação. Todos os comandos CLI do Databricks devem ser executados dentro de uma AzureCLI@2 tarefa, o que significa que cada tarefa se autentica de forma independente. Isto introduz alguma latência, mas requer configuração mínima.
- 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
Atualize estes valores:
-
azureSubscription: O nome da sua ligação ao serviço Azure Resource Manager. -
useGlobalConfig:Necessário. Garante que os subprocessos gerados pordatabricks bundlecomandos possam aceder à sessão autenticada. -
DATABRICKS_HOST: Defina isto se ainda não estiver definido na sua configuração de bundle ou num passo anterior.
Configurar autenticação de segredos do cliente
Utilize um segredo de cliente quando precisar partilhar credenciais entre várias tarefas ou quando a autenticação do Azure CLI adicionar demasiada latência.
Esta abordagem recupera detalhes de autenticação da ligação de serviço numa tarefa e exporta-os como variáveis de ambiente com âmbito de trabalho para tarefas subsequentes.
- 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
Observação:
- A
addSpnToEnvironmentchave expõeservicePrincipalId,servicePrincipalKey, etenantIdao script inline. - Os
##vsocomandos promovem variáveis com escopo de tarefa para variáveis com escopo de trabalho que a CLI Databricks reconhece automaticamente. - Por padrão,
ARM_CLIENT_SECRETestá acessível a todos os passos subsequentes. Para restringir o acesso, adicionaissecret=trueà definição da variável e depois passa-a explicitamente a cada etapa que a necessite. O segredo está mascarado nos logs, independentemente desta configuração.
Para um exemplo completo, consulte Autorizar um principal de serviço Microsoft Entra para aceder a pastas Git.
Configurar autenticação de identidade gerida
A autenticação de identidade gerida baseia-se na configuração da VM ou do contentor em vez de tarefas de pipeline. Este método não requer essa AzureCLI@2 tarefa.
- 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
Atualize estes valores:
-
DATABRICKS_AZURE_RESOURCE_ID: Encontre este valor em Propriedades para o seu espaço de trabalho no portal Azure. -
ARM_CLIENT_ID: O ID do cliente da identidade gerida. -
DATABRICKS_HOST: Opcional. Se não for definido, o valor é inferido a partir deDATABRICKS_AZURE_RESOURCE_ID.
A identidade gerida deve ter o papel de Contribuidor no workspace Azure Databricks.