Ejecuta un DAG de Apache Airflow en Cloud Composer 2 (Google Cloud CLI)
Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
En esta guía de inicio rápido, se muestra cómo crear un entorno de Cloud Composer y cómo ejecutar un DAG de Apache Airflow en Cloud Composer 2.
Si es nuevo en Airflow, consulta el Instructivo sobre conceptos de Airflow en Apache Airflow para obtener más información sobre los conceptos, los objetos y su uso.
Si quieres usar la consola de Google Cloud, consulta Ejecuta un DAG de Apache Airflow en Cloud Composer.
Si quieres crear un entorno con Terraform, consulta Crear entornos (Terraform).
Antes de comenzar
- Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
Create or select a Google Cloud project.
-
Create a Google Cloud project:
gcloud projects create PROJECT_ID
Replace
PROJECT_ID
with a name for the Google Cloud project you are creating. -
Select the Google Cloud project that you created:
gcloud config set project PROJECT_ID
Replace
PROJECT_ID
with your Google Cloud project name.
-
-
Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.
-
Enable the Cloud Composer API:
gcloud services enable composer.googleapis.com
-
Si quieres obtener los permisos que necesitas para completar esta guía de inicio rápido, pídele a tu administrador que te otorgue los siguientes roles de IAM en tu proyecto:
-
Para ver, crear y administrar el entorno de Cloud Composer, haz lo siguiente:
-
Administrador de objetos de almacenamiento y entorno (
roles/composer.environmentAndStorageObjectAdmin
) -
Usuario de cuenta de servicio (
roles/iam.serviceAccountUser
)
-
Administrador de objetos de almacenamiento y entorno (
-
Para ver los registros, haz lo siguiente:
Visor de registros (
roles/logging.viewer
)
Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.
También puedes obtener los permisos necesarios mediante roles personalizados o cualquier otro rol predefinido.
-
Para ver, crear y administrar el entorno de Cloud Composer, haz lo siguiente:
Crear un entorno
Si este es el primer entorno de tu proyecto, agrega la cuenta de agente de servicio de Cloud Composer como un principal nuevo en la cuenta de servicio de tu entorno y otórgale el rol roles/composer.ServiceAgentV2Ext
.
De forma predeterminada, tu entorno usa el cuenta de servicio predeterminada de Compute Engine y en el siguiente ejemplo se muestra cómo agregarle este permiso.
# Get current project's project number
PROJECT_NUMBER=$(gcloud projects list \
--filter="$(gcloud config get-value project)" \
--format="value(PROJECT_NUMBER)" \
--limit=1)
# Add the Cloud Composer v2 API Service Agent Extension role
gcloud iam service-accounts add-iam-policy-binding \
$PROJECT_NUMBER-compute@developer.gserviceaccount.com \
--member serviceAccount:service-$PROJECT_NUMBER@cloudcomposer-accounts.iam.gserviceaccount.com \
--role roles/composer.ServiceAgentV2Ext
Crea un entorno nuevo llamado example-environment
en la región us-central1
con la versión más reciente de Cloud Composer 2.
gcloud composer environments create example-environment \
--location us-central1 \
--image-version composer-2.9.5-airflow-2.9.1
Crea un archivo DAG
Un DAG de Airflow es una colección de tareas organizadas que deseas programar y ejecutar. Los DAG se definen en archivos estándares de Python.
En esta guía, se usa un ejemplo de DAG de Airflow definido en el archivo quickstart.py
.
El código de Python de este archivo hace lo siguiente:
- Crea un DAG
composer_sample_dag
. Este DAG se ejecuta todos los días. - Ejecuta una tarea
print_dag_run_conf
. La tarea imprime la configuración de ejecución del DAG con el operador bash.
Guarda una copia del archivo quickstart.py
en tu máquina local:
Sube el archivo DAG al bucket de tu entorno
Cada entorno de Cloud Composer tiene un Cloud Storage
bucket asociado a ella. Airflow en Cloud Composer programa solo los DAG que se encuentran en la carpeta /dags
de este bucket.
Para programar tu DAG, sube quickstart.py
desde tu máquina local a la carpeta /dags
de tu entorno:
Para subir quickstart.py
con Google Cloud CLI, ejecuta el siguiente comando en
la carpeta en la que se encuentra el archivo quickstart.py
:
gcloud composer environments storage dags import \
--environment example-environment --location us-central1 \
--source quickstart.py
Cómo ver el DAG
Después de subir el archivo DAG, Airflow hace lo siguiente:
- Analiza el archivo DAG que subiste. Es posible que el DAG tarde unos minutos en estar disponible para Airflow.
- Agrega el DAG a la lista de DAG disponibles.
- Ejecuta el DAG de acuerdo con el programa que proporcionaste en el archivo DAG.
Comprueba que tu DAG se procese sin errores y esté disponible en Airflow. Para ello, haz lo siguiente: en la IU del DAG. La IU del DAG es la interfaz de Cloud Composer para visualizar Información sobre el DAG en la consola de Google Cloud. Cloud Composer también proporciona acceso a la IU de Airflow, que es una plataforma web nativa de Airflow interfaz de usuario.
Espera unos cinco minutos para darle tiempo a Airflow de procesar el archivo DAG que subiste anteriormente y completar la primera ejecución del DAG (se explica más adelante).
Ejecuta el siguiente comando en Google Cloud CLI. Este comando ejecuta el comando de la CLI de Airflow
dags list
que muestra una lista de los DAG en tu entorno.gcloud composer environments run example-environment \ --location us-central1 \ dags list
Verifica que el DAG
composer_quickstart
aparezca en el resultado del comando.Salida de ejemplo:
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
Cómo ver los detalles de la ejecución del DAG
Una sola ejecución de un DAG se denomina ejecución de DAG. Airflow ejecuta de inmediato una ejecución de DAG para el DAG de ejemplo porque la fecha de inicio en el archivo DAG está establecida en ayer. De esta manera, Airflow se pone al día con la programación del DAG especificado.
El DAG de ejemplo contiene una tarea, print_dag_run_conf
, que ejecuta el comando echo
en la consola. Este comando genera información meta sobre el DAG
(identificador numérico de la ejecución de DAG).
Ejecuta el siguiente comando en Google Cloud CLI. Este comando enumera las ejecuciones del DAG
para el DAG composer_quickstart
:
gcloud composer environments run example-environment \
--location us-central1 \
dags list-runs -- --dag-id composer_quickstart
Salida de ejemplo:
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
La CLI de Airflow no proporciona un comando para ver los registros de tareas. Puedes usar otros métodos para ver los registros de tareas de Airflow: la IU de DAG de Cloud Composer, la IU de Airflow o Cloud Logging. En esta guía, se muestra una forma de consultar Cloud Logging para obtener registros de una ejecución de DAG específica.
Ejecuta el siguiente comando en Google Cloud CLI. Este comando lee registros de
Cloud Logging para una ejecución de DAG específica del DAG composer_quickstart
El
El argumento --format
formatea el resultado para que solo se muestre el texto del mensaje de registro.
el código fuente.
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\")"
Reemplaza lo siguiente:
RUN_ID
por el valorrun_id
de la salida detasks states-for-dag-run
que ejecutaste antes. Por ejemplo,2024-02-17T15:38:38.969307+00:00
.
Salida de ejemplo:
...
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
Limpia
Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos que se usaron en esta página, borra el proyecto de Cloud que tiene los recursos.
Borra los recursos que se usaron en este instructivo:
Borra el entorno de Cloud Composer:
En la consola de Google Cloud, ve a la página Entornos.
Selecciona
example-environment
y haz clic en Borrar.Espera hasta que se borre el entorno.
Borra el bucket de tu entorno. Aunque borres el entorno de Cloud Composer, no se borra el bucket.
En la consola de Google Cloud, ve a la página Almacenamiento > Navegador.
Selecciona el bucket del entorno y haz clic en Borrar. Por ejemplo, este bucket puede llamarse
us-central1-example-environ-c1616fe8-bucket
.
Borra el disco persistente de la cola de Redis de tu entorno. Aunque borres el entorno de Cloud Composer, no se borrará el disco persistente.
En la consola de Google Cloud, ve a Compute Engine > Discos.
Selecciona el disco persistente de la cola de Redis del entorno y haz clic en Borrar.
Por ejemplo, este disco puede llamarse
pvc-02bc4842-2312-4347-8519-d87bdcd31115
. Los discos de Cloud Composer 2 siempre tienen el tipoBalanced persistent disk
y un tamaño de 2 GB.
¿Qué sigue?