Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Este guia explica como criar um pipeline de CI/CD para testar, sincronizar e implantar DAGs no ambiente do Cloud Composer usando seu repositório do GitHub.
Se quiser apenas sincronizar dados de outros serviços, consulte Transferir dados de outros serviços.
Visão geral do pipeline de CI/CD

O pipeline de CI/CD para testar, sincronizar e implantar DAGs tem as seguintes etapas:
Você faz uma mudança em um DAG e envia essa mudança para uma ramificação de desenvolvimento no seu repositório.
Você abre uma solicitação de envio na ramificação principal do seu repositório.
O Cloud Build executa testes de unidade para verificar se o DAG é válido.
Sua solicitação de envio é aprovada e mesclada à ramificação principal do seu repositório.
O Cloud Build sincroniza seu ambiente de desenvolvimento do Cloud Composer com essas novas mudanças.
Verifique se o DAG se comporta conforme o esperado no ambiente de desenvolvimento.
Se o DAG funcionar conforme o esperado, faça upload dele para o ambiente de produção do Cloud Composer.
Objetivos
Antes de começar
Este guia pressupõe que você está trabalhando com dois ambientes idênticos do Cloud Composer: um de desenvolvimento e outro de produção.
Para os fins deste guia, você está configurando um pipeline de CI/CD apenas para seu ambiente de desenvolvimento. Verifique se o ambiente usado não é de produção.
Este guia pressupõe que você tenha seus DAGs e os testes deles armazenados em um repositório do GitHub.
O exemplo de pipeline de CI/CD demonstra o conteúdo de um repositório de exemplo. Os DAGs e os testes são armazenados no diretório
dags/
, com arquivos de requisitos, o arquivo de restrições e os arquivos de configuração do Cloud Build armazenados no nível superior. O utilitário de sincronização de DAGs e os requisitos dele estão localizados no diretórioutils
.
Criar um job de verificação de pré-envio e testes de unidade
O primeiro job do Cloud Build executa uma verificação de pré-envio, que executa testes de unidade para seus DAGs.
adicionar testes de unidade
Se ainda não tiver feito isso, crie testes de unidade para seus DAGs. Salve esses testes junto com os DAGs no seu repositório, cada um com o sufixo _test
. Por exemplo, o arquivo de teste
para o DAG em example_dag.py
é example_dag_test.py
. Esses são os
testes executados como uma verificação antes do envio no seu repositório.
Criar uma configuração YAML do Cloud Build para a verificação de pré-envio
No repositório, crie um arquivo YAML chamado test-dags.cloudbuild.yaml
que
configura o job do Cloud Build para verificações de pré-envio. Ele tem três etapas:
- Instale as dependências necessárias para seus DAGs.
- Instale as dependências necessárias para seus testes de unidade.
- Execute os testes de DAG.
Criar o gatilho do Cloud Build para a verificação de pré-envio
Siga o guia Como criar repositórios do GitHub para criar um gatilho baseado em um app do GitHub com as seguintes configurações:
Nome:
test-dags
Evento: solicitação de envio
Origem > Repositório: escolha seu repositório.
Origem: ramificação base:
^main$
(mudemain
para o nome da ramificação base do seu repositório, se necessário)Fonte: controle de comentários não obrigatório
Configuração de build: arquivo de configuração do Cloud Build:
/test-dags.cloudbuild.yaml
(o caminho para o arquivo de build)
Criar um job de sincronização de DAG e adicionar o script de utilidade do DAG
Em seguida, configure um job do Cloud Build que execute um script utilitário de DAGs. O script utilitário neste job sincroniza seus DAGs com o ambiente do Cloud Composer depois que eles são mesclados à ramificação principal no repositório.
Adicionar o script de utilidade do DAG
Adicione o script utilitário do DAG ao seu repositório. Esse script de utilidade copia todos os arquivos DAG no diretório dags/
do seu
repositório para um diretório temporário, ignorando todos os arquivos Python que não são DAGs. Em seguida, o
script usa a biblioteca de cliente do Cloud Storage para fazer upload de todos os arquivos
do diretório temporário para o diretório dags/
no bucket do
ambiente do Cloud Composer.
Criar uma configuração YAML do Cloud Build para sincronizar DAGs
No repositório, crie um arquivo YAML chamado
add-dags-to-composer.cloudbuild.yaml
que configure o job do Cloud Build
para sincronizar DAGs. Ele tem duas etapas:
Instale as dependências necessárias para o script utilitário de DAGs.
Execute o script utilitário para sincronizar os DAGs no repositório com o ambiente do Cloud Composer.
Crie o gatilho do Cloud Build
Siga o guia Como criar repositórios do GitHub para criar um gatilho baseado em um app do GitHub com as seguintes configurações:
Nome:
add-dags-to-composer
Evento: enviar por push para uma ramificação
Origem > Repositório: escolha seu repositório.
Origem: ramificação base:
^main$
(mudemain
para o nome da ramificação base do seu repositório, se necessário)Origem: filtro de arquivos incluídos (glob):
dags/**
Configuração de build: arquivo de configuração do Cloud Build:
/add-dags-to-composer.cloudbuild.yaml
(o caminho para o arquivo de build)
Na configuração avançada, adicione duas variáveis de substituição:
_DAGS_DIRECTORY
: o diretório em que os DAGs estão localizados no repositório. Se você estiver usando o repositório de exemplo deste guia, ele serádags/
._DAGS_BUCKET
: o bucket do Cloud Storage que contém o diretóriodags/
no ambiente de desenvolvimento do Cloud Composer. Omita o prefixogs://
. Por exemplo:us-central1-example-env-1234ab56-bucket
.
Teste seu pipeline de CI/CD
Nesta seção, siga um fluxo de desenvolvimento de DAG que usa os gatilhos do Cloud Build recém-criados.
Executar um job de pré-envio
Crie uma solicitação de envio para sua ramificação principal e teste o build. Localize a verificação de pré-envio na página. Clique em Detalhes e escolha Ver mais detalhes no Google Cloud Build para conferir os registros de build no Google Cloud console.

Se a verificação de pré-envio falhar, consulte Como resolver falhas de build.
Valide se o DAG funciona no ambiente de desenvolvimento do Cloud Composer
Depois que a solicitação de envio for aprovada, mescle-a à ramificação principal. Use o
console do
Google Cloud para
ver os resultados da build. Se você tiver muitos
acionadores do Cloud Build, filtre suas versões pelo nome do acionador
add-dags-to-composer
.
Depois que o job de sincronização do Cloud Build for concluído, o DAG sincronizado vai aparecer no ambiente de desenvolvimento do Cloud Composer. Lá, você pode validar se o DAG funciona como esperado.
Adicionar o DAG ao ambiente de produção
Depois que o DAG funcionar conforme o esperado, adicione-o manualmente ao ambiente de produção. Para fazer isso, faça upload do arquivo DAG para o diretório dags/
no bucket do ambiente de produção do Cloud Composer.
Se o job de sincronização do DAG falhar ou se o DAG não estiver funcionando como esperado no ambiente de desenvolvimento do Cloud Composer, consulte Como resolver falhas de build.
Como resolver falhas de build
Esta seção explica como lidar com cenários comuns de falha de build.
E se a verificação de pré-envio falhar?
No seu solicitação de envio, clique em Detalhes e escolha Ver mais detalhes no Google Cloud Build para conferir os registros de build no console doGoogle Cloud . Use esses registros para depurar o problema com seu DAG. Depois de resolver os problemas, faça o commit da correção e envie para sua ramificação. A verificação de pré-envio é executada novamente, e você pode continuar iterando usando os registros como uma ferramenta de depuração.
E se meu job de sincronização de DAG falhar?
Use o console Google Cloud para
ver os resultados da build. Se você tiver muitos
acionadores do Cloud Build, filtre suas versões pelo nome do acionador
add-dags-to-composer
. Examine os registros do job de build e resolva os erros. Se precisar de mais ajuda para resolver os erros, use os
canais de suporte.
E se o DAG não funcionar corretamente no meu ambiente do Cloud Composer?
Se o DAG não funcionar como esperado no ambiente de desenvolvimento do Cloud Composer, não o promova manualmente para o ambiente de produção do Cloud Composer. Em vez disso, escolha uma das opções a seguir:
- Reverta a solicitação de pull com as mudanças que quebraram seu DAG para restaurá-lo ao estado imediatamente anterior às suas mudanças (isso também reverte todos os outros arquivos nessa solicitação de envio).
- Crie uma solicitação de envio para reverter manualmente as mudanças no DAG corrompido.
- Crie uma solicitação de envio para corrigir os erros no seu DAG.
Seguir qualquer uma dessas etapas aciona uma nova verificação de pré-envio e, após a mesclagem, o job de sincronização de DAG.