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.
Este artigo descreve a sintaxe para os modos de implantação do Databricks Asset Bundle . Os pacotes permitem o gerenciamento programático de fluxos de trabalho do Azure Databricks. Consulte O que são Databricks Asset Bundles?
Em fluxos de trabalho de CI/CD, os desenvolvedores normalmente codificam, testam, implantam e executam soluções em várias fases ou modos. Por exemplo, o conjunto mais simples de modos inclui um modo de desenvolvimento para validação de pré-produção, seguido por um modo de produção para produtos validados. O Databricks Asset Bundles fornece uma coleção opcional de comportamentos padrão que correspondem a cada um desses modos. Para usar esses comportamentos para um destino específico, defina um mode ou configure presets para um destino no mapeamento de configuração targets. Para obter informações sobre targets, consulte o mapeamento de destinos de configuração de pacotes.
Modo de desenvolvimento
Para implantar seu pacote no modo de desenvolvimento, você deve primeiro adicionar o mapeamento de mode, definido como development, ao destino pretendido. Por exemplo, esse destino nomeado dev é tratado como um destino de desenvolvimento:
targets:
dev:
mode: development
A implantação de um destino no modo de desenvolvimento executando o databricks bundle deploy -t <target-name> comando implementa os seguintes comportamentos, que podem ser personalizados usando predefinições:
- Antecipe todos os recursos que não são implantados como ficheiros ou notebooks com o prefixo
[dev ${workspace.current_user.short_name}]e marque cada tarefa e pipeline implantados com uma etiquetadevdo Azure Databricks. - Marca todos os Lakeflow Spark Declarative Pipelines relacionados implantados como
development: true. - Permite o uso de
--cluster-id <cluster-id>em chamadas relacionadas ao comandobundle deploy, que substitui quaisquer definições de cluster existentes já especificadas no ficheiro de configuração do pacote relacionado. Em vez de usar--cluster-id <cluster-id>em chamadas relacionadas ao comandobundle deploy, você pode definir o mapeamento decluster_idaqui, ou como um mapeamento filho do mapeamento debundle, para a ID do cluster a ser usado. - Pausa todos os agendamentos e disparadores em recursos implementados, como trabalhos ou monitores de qualidade. Retome as agendas e gatilhos para uma tarefa individual definindo
schedule.pause_statuscomoUNPAUSED. - Permite execuções simultâneas em todos os trabalhos implantados para uma iteração mais rápida. Desative as execuções simultâneas para um trabalho individual definindo
max_concurrent_runscomo1. - Desativa o bloqueio de implantação para iteração mais rápida. Esse bloqueio evita conflitos de implantação que provavelmente não ocorrerão no modo de desenvolvimento. Reative o bloqueio definindo
bundle.deployment.lock.enabledcomotrue.
Modo de produção
Para implantar o seu pacote no modo de produção, deve primeiro adicionar o mapeamento mode, definido como production, ao destino pretendido. Por exemplo, esse destino nomeado prod é tratado como um destino de produção:
targets:
prod:
mode: production
A implantação de um destino no modo de produção executando o databricks bundle deploy -t <target-name> comando implementa os seguintes comportamentos:
Valida que todos os pipelines declarativos relacionados do Lakeflow Spark implantados estão marcados como
development: false.Valida se a ramificação atual do Git é igual à ramificação do Git especificada no destino. A especificação de uma ramificação Git no destino é opcional e pode ser feita com uma propriedade adicional
gitda seguinte maneira:git: branch: mainEssa validação pode ser substituída especificando
--forcedurante a implantação.O Databricks recomenda que você use entidades de serviço para implantações de produção. Você pode impor isso configurando
run_ascomo um principal de serviço. Consulte Principais de serviço e Especificar uma identidade de execução para um fluxo de trabalho de Pacotes de Ativos do Databricks. Se não forem utilizados principais de serviço, observe os seguintes comportamentos adicionais:- Valida que
artifact_path,file_path,root_pathoustate_pathmapeamentos não são substituídos para um utilizador específico. - Valida que os mapeamentos
run_asepermissionssão especificados para esclarecer quais identidades têm permissões específicas para implantações.
- Valida que
Ao contrário do comportamento anterior para definir o
modemapeamento comodevelopment, definir omodemapeamento comoproductionnão permite substituir quaisquer definições de cluster existentes especificadas no arquivo de configuração de pacote relacionado, por exemplo, usando a--compute-id <cluster-id>opção ou ocompute_idmapeamento.
Predefinições personalizadas
O Databricks Asset Bundles suporta predefinições configuráveis para destinos, o que permite personalizar os comportamentos para destinos. As predefinições disponíveis estão listadas na tabela a seguir:
Nota
A menos que uma exceção seja especificada na tabela abaixo, se tanto mode quanto presets estiverem definidas, as predefinições sobrepõem-se ao comportamento do modo padrão, e as configurações de recursos individuais sobrepõem-se às predefinições. Por exemplo, se o max_concurrent_runs para um trabalho for 10, mas a pré-configuração jobs_max_concurrent_runs estiver definida para 20, o máximo de execuções concorrentes do trabalho é 10.
| Predefinição | Descrição |
|---|---|
artifacts_dynamic_version |
Se deseja atualizar dinamicamente a versão dos whl artefatos durante a implementação. Os valores válidos são true ou false. Se a definição de configuração artifacts.dynamic_version de nível superior for especificada, ela substituirá essa predefinição. |
jobs_max_concurrent_runs |
O número de execuções simultâneas máximo permitido para tarefas. |
name_prefix |
A cadeia de caracteres de prefixo a adicionar aos nomes de recursos. |
pipelines_development |
Se o pipeline está em modo de desenvolvimento. Os valores válidos são true ou false. |
source_linked_deployment |
Reservado para uso futuro. Se os recursos criados durante a implementação apontam para ficheiros fonte no espaço de trabalho em vez das cópias do espaço de trabalho. |
tags |
Um conjunto de etiquetas chave:valor que se aplica a todos os recursos que aceitam etiquetas, incluindo trabalhos e experiências. Os Asset Bundles do Databricks não suportam etiquetas para o schema recurso. |
trigger_pause_status |
Um estado de pausa para aplicar a todos os gatilhos e agendamentos. Os valores válidos são PAUSED ou UNPAUSED.Se mode estiver definido como development, trigger_pause_status é sempre PAUSED. |
O exemplo a seguir mostra uma configuração de predefinições personalizada para o destino chamado dev:
targets:
dev:
presets:
name_prefix: 'testing_' # prefix all resource names with testing_
pipelines_development: true # set development to true for pipelines
trigger_pause_status: PAUSED # set pause_status to PAUSED for all triggers and schedules
jobs_max_concurrent_runs: 10 # set max_concurrent runs to 10 for all jobs
tags:
department: finance