Cloud Composer 1 | Cloud Composer 2
En esta página, se describen diferentes formas de activar DAG en entornos de Cloud Composer.
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.
Se activa de forma manual. Puedes activar un DAG de forma manual desde la IU de Airflow o mediante la ejecución de un comando de la CLI de Airflow desde
gcloud
.Activador en respuesta a eventos: La forma estándar de activar un DAG en respuesta a eventos es usar un sensor.
Otras formas de activar los DAG:
Activa de manera programática. Puedes activar un DAG con la API de REST de Airflow. Por ejemplo, desde una secuencia de comandos Python.
Activa de manera programática en respuesta a eventos. Puedes activar los DAG en respuesta a eventos mediante Cloud Functions 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.
Especificar 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 a cada hora a partir de las 15:00 del 5 de abril de 2021. 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 2021.
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, 2021
start_date=datetime(2021, 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(2021, 4, 4, 16, 25)
yschedule_interval
es30 16 * * *
, la primera ejecución del DAG se realiza el 5 de abril de 2021 a las 16:30. - Si
start_date
esdatetime(2021, 4, 4, 16, 35)
yschedule_interval
es30 16 * * *
, la primera ejecución del DAG se realizará el 6 de abril de 2021 a las 16:30. Debido a que la fecha de inicio es posterior al intervalo de programación el 4 de abril de 2021, la ejecución del DAG no se realiza el 5 de abril de 2021. En cambio, el intervalo de programación finaliza a las 16:35 del 5 de abril de 2021, por lo que la próxima ejecución de DAG está programada para el día siguiente a las 16:30. - Si
start_date
esdatetime(2021, 4, 4)
yschedule_interval
es@daily
, entonces la primera ejecución del DAG se programa para las 00:00 del 5 de abril de 2021. - Si
start_date
esdatetime(2021, 4, 4, 16, 30)
yschedule_interval
es0 * * * *
, entonces la primera ejecución del DAG está programada para el 4 de abril de 2021 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 de DAG. Por ejemplo, si tienes un DAG que ya se ejecuta según un programa y lo activas de forma manual, Airflow lo ejecuta una vez, independientemente de la programación real especificada para el DAG.
Consola
La IU del DAG es compatible con Cloud Composer 1.17.8 y versiones posteriores.
Sigue estos pasos para activar un DAG desde la consola de Google Cloud:
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 de DAG, haz clic en Trigger DAG. Se crea una ejecución de DAG nueva.
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
En Airflow 1.10.12 o versiones anteriores, ejecuta el comando trigger_dag
de la CLI de Airflow:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
trigger_dag -- DAG_ID
En Airflow 1.10.14 o posterior, incluido Airflow 2, 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 entornoDAG_ID
por el nombre del DAG.
Si deseas obtener más información para ejecutar comandos de la CLI de Airflow en entornos de 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
.