Como testar DAGs (fluxos de trabalho)

Antes de implantar os DAGs na produção, é possível executar subcomandos CLI do Airflow para analisar o código DAG no mesmo contexto em que o DAG é executado.

Teste durante a criação do DAG

É possível executar uma única instância de tarefa localmente e ver a saída do registro. A visualização da saída permite verificar se há erros de sintaxe e de tarefa. O teste local não verifica as dependências nem informa o status para o banco de dados.

Recomendamos que você coloque os DAGs em uma pasta data/test no ambiente de teste.

Como verificar erros de sintaxe

  1. No bucket do Cloud Storage do ambiente, crie um diretório de teste.

  2. Para verificar se há erros de sintaxe, insira este comando gcloud:

    CLI do Airflow 1.10

    gcloud composer environments run \
      ENVIRONMENT_NAME \
      --location ENVIRONMENT_LOCATION \
       list_dags -- -sd /home/airflow/gcs/data/test
    

    CLI do Airflow 2.0

    gcloud beta composer environments run \
      ENVIRONMENT_NAME \
      --location ENVIRONMENT_LOCATION \
       dags list -- --subdir /home/airflow/gcs/data/test
    

    Em que:

    • ENVIRONMENT_NAME é o nome do ambiente;
    • ENVIRONMENT_LOCATION é a região do Compute Engine em que o ambiente está localizado;

    Exemplo:

    CLI do Airflow 1.10

    gcloud composer environments run \
    test-environment --location us-central1 \
    list_dags -- -sd /home/airflow/gcs/data/test
    

    CLI do Airflow 2.0

    gcloud beta composer environments run \
    test-environment --location us-central1 \
    dags list -- --subdir /home/airflow/gcs/data/test
    

Como verificar erros de tarefas

Para verificar se há erros específicos da tarefa, insira este comando gcloud:

CLI do Airflow 1.10

gcloud composer environments run \
  ENVIRONMENT_NAME \
  --location ENVIRONMENT_LOCATION \
  test -- -sd /home/airflow/gcs/data/test DAG_ID \
  TASK_ID DAG_EXECUTION_DATE

CLI do Airflow 2.0

gcloud beta composer environments run \
  ENVIRONMENT_NAME \
  --location ENVIRONMENT_LOCATION \
  tasks test -- --subdir /home/airflow/gcs/data/test \
  DAG_ID TASK_ID \
  DAG_EXECUTION_DATE

Em que:

  • ENVIRONMENT_NAME é o nome do ambiente;
  • ENVIRONMENT_LOCATION é a região do Compute Engine em que o ambiente está localizado;
  • DAG_ID é o ID do DAG;
  • TASK_ID é o ID da tarefa;
  • DAG_EXECUTION_DATE é a data de execução do DAG. Essa data é usada para modelos. Independentemente da data especificada aqui, o DAG é executado imediatamente.

Exemplo:

CLI do Airflow 1.10

gcloud composer environments run test-environment \
  --location us-central1 \
  test -- -sd /home/airflow/gcs/data/test \
  hello_world print_date 2021-04-22

CLI do Airflow 2.0

gcloud beta composer environments run \
  test-environment \
  --location us-central1 \
  tasks test -- --subdir /home/airflow/gcs/data/test \
  hello_world print_date 2021-04-22

Como atualizar e testar um DAG implantado

Para testar atualizações dos DAGs no ambiente de teste:

  1. Copie o DAG implantado que você quer atualizar para data/test.
  2. Atualize o DAG.
  3. Teste o DAG.
    1. Verifique se há erros de sintaxe.
    2. Verifique se há erros específicos da tarefa.
  4. Verifique se o DAG é executado com êxito.
  5. Desative o DAG no ambiente de teste.
    1. Vá para a página IU do Airflow > DAGs.
    2. Se o DAG que você está modificando está sendo executado constantemente, desative o DAG.
    3. Para acelerar as tarefas pendentes, clique na tarefa e em Marcar com êxito.
  6. Implante o DAG no ambiente de produção.
    1. Desative o DAG no ambiente de produção.
    2. Faça o upload do DAG atualizado para a pasta dags/ no ambiente de produção.

Perguntas frequentes sobre testes de fluxos de trabalho

A seguir