Execute um DAG do Apache Airflow no Cloud Composer 3 (Google Cloud CLI)
Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Neste guia de início rápido, mostramos como criar um ambiente do Cloud Composer e execute um DAG do Apache Airflow no Cloud Composer 3.
Se você é novo no Airflow, consulte a Tutorial de conceitos do Airflow no Apache Airflow documentação para mais informações sobre conceitos, objetos e e como usá-los.
Se você quiser usar o console do Google Cloud em vez disso, consulte Como executar um DAG do Apache Airflow no Cloud Composer.
Se você quiser criar um ambiente usando o Terraform, consulte Criar ambientes (Terraform).
Antes de começar
- Faça login na sua conta do Google Cloud. Se você começou a usar o Google Cloud agora, crie uma conta para avaliar o desempenho de nossos produtos em situações reais. Clientes novos também recebem US$ 300 em créditos para executar, testar e implantar cargas de trabalho.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Crie ou selecione um projeto do Google Cloud.
-
Crie um projeto do Google Cloud:
gcloud projects create PROJECT_ID
Substitua
PROJECT_ID
por um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto do Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_ID
pelo nome do projeto do Google Cloud.
-
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Crie ou selecione um projeto do Google Cloud.
-
Crie um projeto do Google Cloud:
gcloud projects create PROJECT_ID
Substitua
PROJECT_ID
por um nome para o projeto do Google Cloud que você está criando. -
Selecione o projeto do Google Cloud que você criou:
gcloud config set project PROJECT_ID
Substitua
PROJECT_ID
pelo nome do projeto do Google Cloud.
-
-
Verifique se a cobrança está ativada para o seu projeto do Google Cloud.
-
Ative a API Cloud Composer:
gcloud services enable composer.googleapis.com
-
Para conseguir as permissões necessárias a fim de concluir o guia de início rápido, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
-
Para criar e gerenciar o ambiente do Cloud Composer:
-
Administrador de ambiente e de objetos do Storage (
roles/composer.environmentAndStorageObjectAdmin
) -
Usuário da conta de serviço (
roles/iam.serviceAccountUser
)
-
Administrador de ambiente e de objetos do Storage (
-
Para ver os registros:
Visualizador de registros (
roles/logging.viewer
)
Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.
Também é possível conseguir as permissões necessárias com papéis personalizados ou outros papéis predefinidos.
-
Para criar e gerenciar o ambiente do Cloud Composer:
Criar um ambiente
Crie um novo ambiente chamado example-environment
no us-central1
.
com a versão mais recente do Cloud Composer 3.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-3-airflow-2.9.1-build.13
Criar um arquivo DAG
Um DAG do Airflow é uma coleção de tarefas organizadas que que você quer programar e executar. Os DAGs são definidos em arquivos Python padrão.
Neste guia, usamos um exemplo de DAG do Airflow definido no arquivo quickstart.py
.
O código Python nesse arquivo faz o seguinte:
- Cria um DAG,
composer_sample_dag
. Este DAG é executado todos os dias. - Executa uma tarefa,
print_dag_run_conf
. A tarefa imprime a configuração da execução do DAG usando o operador bash.
Salve uma cópia do arquivo quickstart.py
na sua máquina local:
faça upload do arquivo DAG para o bucket do ambiente
Todo ambiente do Cloud Composer tem
em um bucket associado a ela. Somente as programações do Airflow no Cloud Composer
DAGs que estão localizados na pasta /dags
neste bucket.
Para programar seu DAG, faça upload do arquivo quickstart.py
da máquina local para o
pasta /dags
do ambiente:
Para fazer upload de quickstart.py
com a Google Cloud CLI, execute o seguinte comando em
a pasta em que o arquivo quickstart.py
está localizado:
gcloud composer environments storage dags import \
--environment example-environment --location us-central1 \
--source quickstart.py
Visualizar o DAG
Depois de fazer upload do arquivo DAG, o Airflow faz o seguinte:
- Analisa o arquivo DAG que você enviou. Pode levar alguns minutos para que o DAG ficar disponível para o Airflow.
- Adiciona o DAG à lista de DAGs disponíveis.
- Executa o DAG de acordo com a programação que você forneceu no arquivo DAG.
Verifique se o DAG foi processado sem erros e está disponível no Airflow na interface do DAG. A interface do DAG é a interface do Cloud Composer para visualização Informações do DAG no console do Google Cloud. O Cloud Composer também oferece Acesso à IU do Airflow, que é uma interface nativa da plataforma interface gráfica do usuário.
Aguarde cerca de cinco minutos para que o Airflow tenha tempo de processar o arquivo DAG que você enviou anteriormente e concluir a primeira execução do DAG (explicado mais tarde).
Execute o comando a seguir na Google Cloud CLI. Esse comando executa
dags list
Comando da CLI do Airflow que lista os DAGs na sua de nuvem.gcloud composer environments run example-environment \ --location us-central1 \ dags list
Verifique se o DAG
composer_quickstart
está listado na saída do comando.Exemplo de saída:
Executing the command: [ airflow dags list ]... Command has been started. execution_id=d49074c7-bbeb-4ee7-9b26-23124a5bafcb Use ctrl-c to interrupt the command dag_id | filepath | owner | paused ====================+=======================+==================+======= airflow_monitoring | airflow_monitoring.py | airflow | False composer_quickstart | dag-quickstart-af2.py | Composer Example | False
Mais detalhes da execução do DAG
Uma única execução de um DAG é chamada de execução de DAG. Airflow imediatamente executa um DAG para o DAG de exemplo porque a data de início no arquivo DAG é definido como ontem. Dessa forma, o Airflow alcança os DAGs especificados cronograma.
O DAG de exemplo contém uma tarefa, print_dag_run_conf
, que executa a echo
no console. Esse comando exibe metainformações sobre o DAG
(identificador numérico da execução do DAG).
Execute o comando a seguir na Google Cloud CLI. Esse comando lista as execuções do DAG
para o DAG composer_quickstart
:
gcloud composer environments run example-environment \
--location us-central1 \
dags list-runs -- --dag-id composer_quickstart
Exemplo de saída:
dag_id | run_id | state | execution_date | start_date | end_date
====================+=============================================+=========+==================================+==================================+=================================
composer_quickstart | scheduled__2024-02-17T15:38:38.969307+00:00 | success | 2024-02-17T15:38:38.969307+00:00 | 2024-02-18T15:38:39.526707+00:00 | 2024-02-18T15:38:42.020661+00:00
A CLI do Airflow não fornece um comando para visualizar os registros de tarefas. Você pode usar Outros métodos para ver registros de tarefas do Airflow: a interface do DAG do Cloud Composer, a interface do Airflow ou o Cloud Logging. Este guia mostra uma maneira de consultar o Cloud Logging para encontrar registros de uma execução específica de DAG.
Execute o comando a seguir na Google Cloud CLI. Esse comando lê registros
Cloud Logging para uma execução específica do DAG composer_quickstart
. O
O argumento --format
formata a saída para que apenas o texto da mensagem de registro
é exibido.
gcloud logging read \
--format="value(textPayload)" \
--order=asc \
"resource.type=cloud_composer_environment \
resource.labels.location=us-central1 \
resource.labels.environment_name=example-environment \
labels.workflow=composer_quickstart \
(labels.\"execution-date\"=\"RUN_ID\")"
Substitua:
RUN_ID
pelo valorrun_id
da saída dotasks states-for-dag-run
executado anteriormente. Por exemplo,2024-02-17T15:38:38.969307+00:00
.
Exemplo de saída:
...
Starting attempt 1 of 2
Executing <Task(BashOperator): print_dag_run_conf> on 2024-02-17
15:38:38.969307+00:00
Started process 22544 to run task
...
Running command: ['/usr/bin/bash', '-c', 'echo 115746']
Output:
115746
...
Command exited with return code 0
Marking task as SUCCESS. dag_id=composer_quickstart,
task_id=print_dag_run_conf, execution_date=20240217T153838,
start_date=20240218T153841, end_date=20240218T153841
Task exited with return code 0
0 downstream tasks scheduled from follow-on schedule check
Limpar
Para evitar cobranças na sua conta do Google Cloud pelos recursos usados nesta página, exclua o projeto do Google Cloud com esses recursos.
Exclua os recursos usados neste tutorial:
Exclua o ambiente do Cloud Composer:
No console do Google Cloud, acesse a página Ambientes.
Selecione
example-environment
e clique em Excluir.Aguarde até o ambiente ser excluído.
Exclua o bucket do ambiente. A exclusão do ambiente do Cloud Composer não exclui o bucket.
No console do Google Cloud, acesse Armazenamento > Navegador.
Selecione o bucket do ambiente e clique em Excluir. Por exemplo, ele pode ter o nome
us-central1-example-environ-c1616fe8-bucket
.
Exclua o disco permanente da fila do Redis do seu ambiente. A exclusão do ambiente do Cloud Composer não remove o disco permanente.
No console do Google Cloud, acesse a página Compute Engine > Discos.
Selecione o disco permanente da fila do Redis do ambiente e clique em Excluir.
Por exemplo, esse disco pode ser nomeado
gke-us-central1-exampl-pvc-b12055b6-c92c-43ff-9de9-10f2cc6fc0ee
: Os discos do Cloud Composer 1 sempre têm aStandard persistent disk
tipo e o tamanho de 2 GB.
A seguir