Partilhar via


Modos de implantação do Databricks Asset Bundle

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. Suas implantações de pacote podem usar esses comportamentos com uma declaração de modo de uma linha, em vez de especificar manualmente esses comportamentos padrão em seu arquivo de configuração de pacote – e talvez esquecer de adicionar ou configurar um dos mais comportamentos pretendidos ao longo do caminho.

Modo de desenvolvimento

Para implantar seu pacote no modo de desenvolvimento, você deve primeiro adicionar o mode mapeamento, 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 de desenvolvimento executando o databricks bundle deploy -t <target-name> comando implementa os seguintes comportamentos:

  • Precede todos os recursos que não são implantados como arquivos ou blocos de anotações com o prefixo [dev ${workspace.current_user.userName}] e marca cada trabalho implantado e pipeline com uma dev marca do Azure Databricks.
  • Marca todos os pipelines Delta Live Tables implantados relacionados como development: true. Consulte Usar o modo de desenvolvimento para executar atualizações de pipeline.
  • Permite o uso de chamadas relacionadas ao bundle deploy comando, que substitui todas e quaisquer definições de cluster existentes já especificadas no arquivo de --compute-id <cluster-id> configuração do pacote relacionado. Em vez de usar --compute-id <cluster-id> em chamadas relacionadas ao bundle deploy comando, você pode definir o compute_id mapeamento aqui, ou como um mapeamento filho do bundle mapeamento, para a ID do cluster a ser usado.
  • Pausa todas as agendas e gatilhos em recursos implantados, como trabalhos ou monitores de qualidade. Interrompa agendas e gatilhos para um trabalho individual definindo schedule.pause_status como UNPAUSED.
  • 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_runs como 1.
  • 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.enabled como true.

Modo de produção

Para implantar seu pacote no modo de produção, você deve primeiro adicionar o mode mapeamento, 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 de produção executando o databricks bundle deploy -t <target-name> comando implementa os seguintes comportamentos:

  • Valida que todos os pipelines Delta Live Tables implantados relacionados 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 git da seguinte maneira:

    git:
      branch: main
    

    Essa validação pode ser substituída especificando --force durante a implantação.

  • O Databricks recomenda que você use entidades de serviço para implantações de produção. Você pode impor isso definindo run_as como uma entidade de serviço. Consulte Gerenciar entidades de serviço e Especificar uma identidade de execução para um fluxo de trabalho do Databricks Asset Bundles. Se você não usar entidades de serviço, observe os seguintes comportamentos adicionais:

    • Valida que artifact_path, file_path, root_pathou state_path mapeamentos não são substituídos para um usuário específico.
    • Valida que os run_as mapeamentos e permissions são especificados para esclarecer quais identidades têm permissões específicas para implantações.
  • Ao contrário do comportamento anterior para definir o mode mapeamento como development, definir o mode mapeamento como production nã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 o compute_id mapeamento.