Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
En esta página, se describen diferentes formas de activar los DAG en Cloud Composer entornos de prueba.
Airflow proporciona las siguientes formas de activar un DAG:
Activación en función de un programa. Cuando creas un DAG, debes especificar un programa. Airflow activa el DAG de forma automática según los parámetros de programación especificados.
Activa manualmente. Puedes activar un DAG de forma manual desde La consola de Google Cloud, la IU de Airflow o la ejecución de un comando de la CLI de Airflow desde
gcloud
.Activa en respuesta a eventos. La forma estándar de activar un DAG respuesta a los eventos es usar un sensor.
Otras maneras de activar los DAG:
Activar de manera programática. Puedes Activar un DAG con la API de REST de Airflow Por ejemplo, desde una secuencia de comandos de Python.
Activa de forma programática en respuesta a eventos. Puedes activar los DAG respuesta a los eventos mediante Funciones de Cloud Run y la API de REST de Airflow.
Activa un DAG en función de un programa
Para activar un DAG en función de un programa, haz lo siguiente:
- Especifica los parámetros
start_date
yschedule_interval
en el archivo DAG, como se describe más adelante en esta sección. - Sube el archivo de DAG a tu entorno.
Especifica los parámetros de programación
Cuando defines un DAG, en el parámetro schedule_interval
, especificas con qué frecuencia deseas ejecutar el DAG. En el parámetro start_date
, debes especificar cuándo deseas que Airflow comience a programar el DAG. Las tareas del DAG pueden tener fechas de inicio individuales, o bien puedes especificar una sola fecha de inicio para todas las tareas.
En función de la fecha de inicio mínima para las tareas en tu DAG y en el intervalo de programación, Airflow programa las ejecuciones de DAG.
La programación funciona de la siguiente manera. Después de que pase start_date
, Airflow esperará a la siguiente ocurrencia de schedule_interval
. Luego, programa la primera ejecución del DAG para que se realice al final de este intervalo de programación. Por ejemplo, si un DAG está programado para ejecutarse a cada hora (schedule_interval
es 1 hora) y la fecha de inicio es a las 12:00 de hoy, la primera ejecución del DAG se realiza hoy a las 13:00.
En el siguiente ejemplo, se muestra un DAG que se ejecuta cada hora a partir de las 3:00 p.m. 5 de abril de 2024. Con los parámetros usados en el ejemplo, Airflow programa el primer DAG para que se ejecute a las 16:00 del 5 de abril de 2024.
from datetime import datetime
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
with DAG(
dag_id='example_dag_schedule',
# At 15:00 on 5 April, 2024
start_date=datetime(2024, 4, 5, 15, 0),
# At minute 0 of every hour
schedule_interval='0 * * * *') as dag:
# Output the current date and time
t1 = BashOperator(
task_id='date',
bash_command='date',
dag=dag)
t1
Para obtener más información sobre los parámetros de programación, consulta Ejecuciones de DAG en la documentación de Airflow.
Más ejemplos de parámetros de programación
A continuación, se muestran ejemplos de cómo funciona la programación con diferentes combinaciones de parámetros:
Si
start_date
esdatetime(2024, 4, 4, 16, 25)
yschedule_interval
es30 16 * * *
, la primera ejecución del DAG se realiza el 5 de abril de 2024 a las 16:30.Si
start_date
esdatetime(2024, 4, 4, 16, 35)
yschedule_interval
es30 16 * * *
, la primera ejecución del DAG se realizará el 6 de abril de 2024 a las 16:30. Como la fecha de inicio es posterior al intervalo de programación del 4 de abril de 2024, la ejecución del DAG no se realizará el 5 de abril de 2024. En cambio, el cronograma el intervalo finaliza a las 16:35 del 5 de abril de 2024, por lo que se programó la próxima ejecución de DAG para las 4:30 del día siguiente.Si
start_date
esdatetime(2024, 4, 4)
, yschedule_interval
es@daily
, la primera ejecución de DAG está programada para el 5 de abril de 2024 a las 12:00.Si
start_date
esdatetime(2024, 4, 4, 16, 30)
yschedule_interval
es0 * * * *
, entonces la primera ejecución del DAG está programada para el 4 de abril de 2024 a las 18:00. Después de que pase la fecha y hora especificadas, Airflow programa una ejecución de DAG en el minuto 0 de cada hora. El momento más cercano en que esto sucede es a las 17:00. En este momento, Airflow programa una ejecución de DAG para que se realice al final del intervalo de programación, es decir, a las 18:00.
Activa un DAG de forma manual
Cuando activas un DAG de forma manual, Airflow realiza una ejecución del DAG. Por ejemplo: si tienes un DAG que ya se ejecuta según un programa y lo activas de forma manual, Airflow ejecuta tu DAG una vez, independientemente de la una programación especificada para el DAG.
Console
Para activar un DAG desde la consola de Google Cloud, sigue estos pasos:
En la consola de Google Cloud, ve a la página Entornos.
Selecciona un entorno para ver sus detalles.
En la página Detalles del entorno, ve a la pestaña DAG.
Haz clic en el nombre de un DAG.
En la página Detalles del DAG, haz clic en Trigger DAG. Una nueva ejecución de DAG crear.
IU de Airflow
Para activar un DAG desde la interfaz web de Airflow, sigue estos pasos:
- En la consola de Google Cloud, ve a la página Entornos.
En la columna Servidor web de Airflow, sigue el vínculo de Airflow para tu entorno.
Accede con la Cuenta de Google que tiene los permisos correspondientes.
En la interfaz web de Airflow, en la página DAG, en la columna Vínculos de tu DAG, haz clic en el botón Activar DAG.
Especifica la configuración de la ejecución del DAG (opcional).
Haz clic en Activar.
gcloud
Ejecuta el comando dags trigger
de la CLI de Airflow:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
dags trigger -- DAG_ID
Reemplaza lo siguiente:
ENVIRONMENT_NAME
por el nombre del entorno.LOCATION
por la región en la que se encuentra el entorno.DAG_ID
por el nombre del DAG.
Si deseas obtener más información para ejecutar comandos de la CLI de Airflow en Cloud Composer, consulta Ejecuta comandos de la CLI de Airflow.
Para obtener más información sobre los comandos disponibles de la CLI de Airflow, consulta la referencia de comandos gcloud composer environments run
.