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 descreve a sintaxe para os modos de implementação do Declarative Automation Bundles. Os pacotes permitem o gerenciamento programático de fluxos de trabalho do Azure Databricks. Veja o que são os Pacotes de Automação Declarativa?
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. Os Pacotes de Automação Declarativa fornecem uma coleção opcional de comportamentos padrão que correspondem a cada um destes modos.
Os modos de implantação são opcionais. Pode implementar bundles sem definir a mode ou configurar presets. Os modos de implementação são úteis para aplicar, de uma só vez, um conjunto de parâmetros frequentemente utilizados.
Modo de desenvolvimento
Para implementar o seu bundle em modo de desenvolvimento, adicione o mode mapeamento, definido para development, ao alvo pretendido. Ver mapeamento de alvos de configuração de pacotes. 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 distribuir o seu pacote em modo de produção, adicione o mapeamento mode, configurado para production, ao destino pretendido. Ver mapeamento de alvos de configuração de pacotes. 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 princípios de serviço e Especifique uma identidade de execução para um fluxo de trabalho de Pacotes de Automação Declarativa. 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
Os Pacotes de Automação Declarativa suportam predefinições configuráveis para alvos, o que permite personalizar os comportamentos dos alvos. Para predefinições disponíveis, consulte a referência de configuração.
Nota
A menos que seja especificada uma exceção para um preset, se ambos mode e presets estiverem definidos, os presets sobrepõem-se ao comportamento do modo padrão, e as definições dos recursos individuais sobrepõem-se aos presets. Por exemplo:
- Se o
max_concurrent_runspara um trabalho for 10, mas ojobs_max_concurrent_runs"preset" estiver definido para 20, o número máximo de execuções concorrentes do trabalho é 10. - Se um horário estiver definido para
UNPAUSED, mas otrigger_pause_statuspreset estiver definido paraPAUSED, o horário será despausado.
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