Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Este guia explica como criar um pipeline de CI/CD para testar, sincronizar e implementar DAGs no seu ambiente do Cloud Composer a partir do seu repositório do GitHub.
Se quiser sincronizar apenas dados de outros serviços, consulte o artigo Transfira dados de outros serviços.
Vista geral do pipeline de CI/CD

O pipeline de CI/CD para testar, sincronizar e implementar DAGs tem os seguintes passos:
Faz uma alteração a um DAG e envia essa alteração para um ramo de programação no seu repositório.
Abre um pedido de obtenção em relação ao ramo principal do seu repositório.
O Cloud Build executa testes unitários para verificar se o seu DAG é válido.
O seu pedido de envio é aprovado e integrado no ramo principal do seu repositório.
O Cloud Build sincroniza o seu ambiente de desenvolvimento do Cloud Composer com estas novas alterações.
Verifica se o DAG se comporta como esperado no seu ambiente de programação.
Se o DAG funcionar como esperado, carregue-o para o seu ambiente de produção do Cloud Composer.
Objetivos
Antes de começar
Este guia pressupõe que está a trabalhar com dois ambientes do Cloud Composer idênticos: um ambiente de desenvolvimento e um ambiente de produção.
Para os fins deste guia, está a configurar um pipeline de CI/CD apenas para o seu ambiente de desenvolvimento. Certifique-se de que o ambiente que usa não é um ambiente de produção.
Este guia pressupõe que tem os seus DAGs e respetivos testes armazenados num 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 ficheiros de requisitos, o ficheiro de restrições e os ficheiros de configuração do Cloud Build armazenados ao nível superior. O utilitário de sincronização DAG e os respetivos requisitos encontram-se no diretórioutils
.Esta estrutura pode ser usada para ambientes do Airflow 1, Airflow 2, Cloud Composer 1 e Cloud Composer 2.
Crie uma tarefa de verificação de pré-envio e testes unitários
A primeira tarefa do Cloud Build executa uma verificação de pré-envio, que executa testes unitários para os seus DAGs.
Adicione testes de unidades
Se ainda não o fez, crie testes unitários para os seus DAGs. Guarde estes testes juntamente com os DAGs no seu repositório, cada um com o sufixo _test
. Por exemplo, o ficheiro de teste do DAG em example_dag.py
é example_dag_test.py
. Estes são os testes que são executados como uma verificação de pré-envio no seu repositório.
Crie uma configuração YAML do Cloud Build para a verificação de pré-envio
No seu repositório, crie um ficheiro YAML com o nome test-dags.cloudbuild.yaml
que
configura a tarefa do Cloud Build para verificações de pré-envio. Neste, existem
três passos:
- Instale as dependências necessárias para os seus DAGs.
- Instale as dependências necessárias para os testes unitários.
- Execute os testes de DAG.
Crie o acionador do Cloud Build para a verificação de pré-envio
Siga o guia Criar repositórios a partir do GitHub para criar um acionador baseado na app GitHub com as seguintes configurações:
Nome:
test-dags
Evento: pedido de envio
Origem – Repositório: escolha o seu repositório
Origem: ramificação base:
^main$
(alteremain
para o nome da ramificação base do seu repositório, se necessário)Fonte – Controlo de comentários: não obrigatório
Configuração da compilação: ficheiro de configuração da compilação na nuvem:
/test-dags.cloudbuild.yaml
(o caminho para o ficheiro de compilação)
Crie uma tarefa de sincronização de DAG e adicione o script de utilidade DAGs
Em seguida, configure uma tarefa do Cloud Build que execute um script de utilidade DAGs. O script de utilidade neste trabalho sincroniza os seus DAGs com o seu ambiente do Cloud Composer depois de serem unidos ao ramo principal no seu repositório.
Adicione o script de utilidade DAGs
Adicione o script de utilidade DAG ao seu repositório. Este script de utilidade copia todos os ficheiros DAG no diretório dags/
do seu repositório para um diretório temporário, ignorando todos os ficheiros Python que não sejam DAG. Em seguida, o script usa a biblioteca de cliente do Cloud Storage para carregar todos os ficheiros
desse diretório temporário para o diretório dags/
no contentor do seu
ambiente do Cloud Composer.
Crie uma configuração YAML do Cloud Build para sincronizar DAGs
No seu repositório, crie um ficheiro YAML com o nome
add-dags-to-composer.cloudbuild.yaml
que configure a tarefa do Cloud Build
para sincronizar DAGs. Este processo tem dois passos:
Instale as dependências necessárias para o script de utilidade DAGs.
Execute o script de utilidade para sincronizar os DAGs no seu repositório com o seu ambiente do Cloud Composer.
Crie o acionador do Cloud Build
Siga o guia Criar repositórios a partir do GitHub para criar um acionador baseado na app GitHub com as seguintes configurações:
Nome:
add-dags-to-composer
Evento: enviar para um ramo
Origem – Repositório: escolha o seu repositório
Origem: ramificação base:
^main$
(alteremain
para o nome da ramificação base do seu repositório, se necessário)Origem: filtro de ficheiros incluídos (glob):
dags/**
Configuração da compilação: ficheiro de configuração da compilação na nuvem:
/add-dags-to-composer.cloudbuild.yaml
(o caminho para o ficheiro de compilação)
Na configuração avançada, adicione duas variáveis de substituição:
_DAGS_DIRECTORY
: o diretório onde os DAGs estão localizados no seu repositório. Se estiver a usar o repositório de exemplo deste guia, édags/
._DAGS_BUCKET
– o contentor do Cloud Storage que contém o diretóriodags/
no seu ambiente de desenvolvimento do Cloud Composer. Omita o prefixogs://
. Por exemplo:us-central1-example-env-1234ab56-bucket
.
Teste o pipeline de CI/CD
Nesta secção, siga um fluxo de desenvolvimento de DAG que usa os acionadores do Cloud Build criados recentemente.
Execute uma tarefa de pré-envio
Crie um pedido de obtenção para a ramificação principal para testar a compilação. Localize a verificação pré-envio na página. Clique em Detalhes e escolha Ver mais detalhes no Google Cloud Build para ver os registos de compilação na Google Cloud consola.

Se a verificação pré-envio falhou, consulte o artigo Resolva falhas de compilação.
Valide se o seu DAG funciona no ambiente de desenvolvimento do Cloud Composer
Depois de o seu pedido de obtenção ser aprovado, faça a união com o ramo principal. Use a
Google Cloud consola para
ver os resultados da compilação. Se tiver muitos acionadores do Cloud Build, pode filtrar as compilações pelo nome do acionador
add-dags-to-composer
.
Depois de a tarefa de sincronização do Cloud Build ser bem-sucedida, o DAG sincronizado é apresentado no seu ambiente de desenvolvimento do Cloud Composer. Aí, pode validar se o DAG funciona como esperado.
Adicione o DAG ao seu ambiente de produção
Depois de o DAG ter o desempenho esperado, adicione-o manualmente ao seu ambiente de produção. Para tal,
carregue o ficheiro DAG
para o diretório dags/
no contentor do ambiente
de produção do Cloud Composer.
Se a tarefa de sincronização do DAG falhou ou se o DAG não está a funcionar como esperado no seu ambiente de desenvolvimento do Cloud Composer, consulte o artigo Resolver falhas de compilação.
Resolver falhas de compilação
Esta secção explica como resolver cenários comuns de falha de compilação.
E se a minha verificação pré-envio falhar?
No pedido de obtenção, clique em Detalhes e escolha Ver mais detalhes no Google Cloud Build para ver os registos de compilação na Google Cloud consola. Use estes registos para ajudar a depurar o problema com o seu DAG. Depois de resolver os problemas, confirme a correção e envie-a para o seu ramo. A verificação de pré-envio é executada novamente e pode continuar a iterar através dos registos como ferramenta de depuração.
E se a minha tarefa de sincronização de DAG falhar?
Use a Google Cloud consola para
ver os resultados da compilação. Se tiver muitos acionadores do Cloud Build, pode filtrar as compilações pelo nome do acionador
add-dags-to-composer
. Examine os registos da tarefa de compilação e resolva os erros. Se precisar de ajuda adicional para resolver os erros, use os canais de apoio técnico.
O que acontece se o meu DAG não funcionar corretamente no meu ambiente do Cloud Composer?
Se o seu DAG não funcionar como esperado no ambiente de desenvolvimento do Cloud Composer, não promova manualmente o DAG para o ambiente de produção do Cloud Composer. Em alternativa, efetue uma das seguintes ações:
- Reverta o pedido de envio com as alterações que danificaram o seu DAG para o restaurar ao estado imediatamente anterior às suas alterações (esta ação também reverte todos os outros ficheiros nesse pedido de envio).
- Crie um novo pedido de obtenção para reverter manualmente as alterações ao DAG danificado.
- Crie um novo pedido de envio para corrigir os erros no seu DAG.
A execução de qualquer um destes passos aciona uma nova verificação de pré-envio e, após a união, a tarefa de sincronização do DAG.