Cloud Composer 1 | Cloud Composer 2
Neste guia, explicamos como criar um pipeline de CI/CD para testar, sincronizar e implantar DAGs no ambiente do Cloud Composer usando seu repositório do GitHub.
Visão geral do pipeline de CI/CD

O pipeline de CI/CD que testa, sincroniza e implanta DAGs tem as seguintes etapas:
Você fará uma alteração em um DAG e a enviará por push para uma ramificação de desenvolvimento no seu repositório.
Você vai abrir uma solicitação de envio na ramificação main do repositório.
O Cloud Build executa testes de unidade para verificar se o DAG é válido.
Sua solicitação de envio é aprovada e mesclada com a ramificação principal do repositório.
O Cloud Build sincroniza seu ambiente de desenvolvimento do Cloud Composer com essas novas alterações.
Verifique se o DAG se comporta como esperado no ambiente de desenvolvimento.
Se o DAG funcionar conforme esperado, faça upload dele para o ambiente de produção do Cloud Composer.
Objetivos
Antes de começar
Neste guia, presumimos que você esteja trabalhando com dois ambientes idênticos do Cloud Composer: um de desenvolvimento e outro de produção.
Neste guia, você configura 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 seus DAGs e os testes deles estejam 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 os arquivos de requisitos, de restrições e de configuração do Cloud Build armazenados no nível superior. O utilitário de sincronização de DAG e os respectivos requisitos estão localizados no diretórioutils
.Essa estrutura pode ser usada nos ambientes Airflow 1, Airflow 2, Cloud Composer 1 e Cloud Composer 2.
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
Crie testes de unidade para os DAGs, caso ainda não tenha feito isso. Salve esses testes 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 verificação de pré-envio no repositório.
Criar a configuração YAML do Cloud Build para a verificação de pré-envio
No seu repositório, crie um arquivo YAML chamado test-dags.cloudbuild.yaml
que configure o job do Cloud Build para verificações de pré-envio. Nele, há três etapas:
- Instale as dependências necessárias para os DAGs.
- Instale as dependências necessárias para os testes de unidade.
- executar 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:
Name:
test-dags
Evento: solicitação de envio
Origem - Repositório: escolha seu repositório.
Origem: ramificação de base:
^main$
. Mudemain
para o nome da ramificação de base do repositório, se necessário.Fonte: controle de comentários: não obrigatório.
Configuração do build: arquivo de configuração do Cloud build:
/test-dags.cloudbuild.yaml
(o caminho para seu arquivo de build).
Criar um job de sincronização de DAGs e adicionar um script utilitário de DAGs
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 na ramificação principal do repositório.
Adicionar o script utilitário de DAGs
Adicione o script utilitário do DAG ao repositório. Esse script utilitário 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 sejam DAO. Em seguida, o script usa a biblioteca de cliente do Cloud Storage para fazer upload de todos os arquivos desse diretório temporário para o diretório dags/
no bucket do ambiente do Cloud Composer.
Criar configuração de YAML do Cloud Build para sincronizar DAGs
No seu repositório, crie um arquivo YAML chamado
add-dags-to-composer.cloudbuild.yaml
que configure o job do Cloud Build
para sincronizar DAGs. Nele, há 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 seu 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:
Name:
add-dags-to-composer
Evento: enviar por push para uma ramificação
Origem - Repositório: escolha seu repositório.
Origem: ramificação de base:
^main$
. Mudemain
para o nome da ramificação de base do repositório, se necessário.Origem – Filtro de arquivos incluídos (glob):
dags/**
Configuração do build: arquivo de configuração do Cloud build:
/add-dags-to-composer.cloudbuild.yaml
(o caminho para seu 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 seu 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
.
Testar o pipeline de CI/CD
Nesta seção, siga um fluxo de desenvolvimento de DAG que usa seus gatilhos do Cloud Build recém-criados.
Executar um job de pré-envio
Crie uma solicitação de envio para a ramificação main 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 ver seus registros da versão no console do Google Cloud.

Se a verificação de pré-envio falhou, consulte Como resolver falhas de build.
Verificar 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 versão. Se você tiver muitos gatilhos do Cloud Build, poderá filtrar as versões pelo nome do gatilho add-dags-to-composer
.
Depois que o job de sincronização do Cloud Build for bem-sucedido, o DAG sincronizado aparecerá no ambiente de desenvolvimento do Cloud Composer. Lá, é possível validar se o DAG funciona conforme o esperado.
Adicionar o DAG ao ambiente de produção
Depois que o DAG for executado conforme o esperado, adicione-o manualmente ao ambiente de produção. Para 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 se comportando conforme o 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 minha verificação de pré-envio falhar?
Na solicitação de envio, clique em Detalhes e escolha Ver mais detalhes no Google Cloud Build para ver os registros da versão no console do Google Cloud. Use esses registros para depurar o problema com o DAG. Depois de resolver os problemas, confirme a correção e envie para seu branch. A verificação de pré-envio é executada novamente e você pode continuar a iterar usando os registros como uma ferramenta de depuração.
E se o job de sincronização do DAG falhar?
Use o console do Google Cloud para
ver os resultados do build. Se você tiver muitos gatilhos do Cloud Build, poderá filtrar as versões pelo nome do gatilho add-dags-to-composer
. Examine os registros do job de criação 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 envio com as alterações que interromperam o DAG para restaurá-lo ao estado imediatamente antes das suas alterações. Isso também reverterá todos os outros arquivos na solicitação de envio.
- Crie uma nova solicitação de envio para reverter manualmente as alterações no DAG corrompido.
- Crie uma nova solicitação de envio para corrigir os erros no DAG.
Seguir qualquer uma dessas etapas aciona uma nova verificação de pré-envio e, após a mesclagem, o job de sincronização do DAG.