Ejecuta un DAG de Apache Airflow en Managed Airflow (2ª gen.)

Managed Airflow (3ª gen.) | Managed Airflow (2ª gen.) | Managed Airflow (1ª gen. heredada)

En esta guía de inicio rápido, se muestra cómo crear un entorno de Managed Service para Apache Airflow y ejecutar un DAG de Apache Airflow en Managed Airflow (2ª gen.).

Antes de comenzar

  1. Accede a tu Google Cloud cuenta de. Si no conoces 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.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Habilitar la API de Managed Airflow

    Roles necesarios para habilitar las APIs

    Para habilitar las APIs, necesitas el rol de IAM de administrador de Service Usage (roles/serviceusage.serviceUsageAdmin), que contiene el permiso serviceusage.services.enable. Obtén más información para otorgar roles.

    Habilitar la API

  7. 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 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 a través de roles personalizados o cualquier otro rol predefinido.

Crea una cuenta de servicio del entorno

Cuando creas un entorno, especificas una cuenta de servicio. Esta cuenta de servicio se denomina cuenta de servicio del entorno. Tu entorno usa esta cuenta de servicio para realizar la mayoría de las operaciones.

La cuenta de servicio de tu entorno no es una cuenta de usuario. Una cuenta de servicio es un tipo especial de cuenta que usa una aplicación o una instancia de máquina virtual (VM), no una persona.

Para crear una cuenta de servicio para tu entorno, haz lo siguiente:

  1. Crea una cuenta de servicio nueva, como se describe en la documentación de Identity and Access Management.

  2. Otorga un rol, como se describe en la documentación de Identity and Access Management. El rol requerido es Trabajador de Composer (composer.worker).

Crear un entorno

  1. En la Google Cloud console, ve a la página Crear entorno.

    Ir a Crear entorno

  1. Si este es el primer entorno de tu proyecto, aparecerá la sección Otorga los permisos necesarios a la cuenta de servicio de Cloud Composer.

    Agrega la cuenta de agente de servicio de Managed Airflow como una nueva entidad en la cuenta de servicio de tu entorno y otórgale el rol Extensión de agente de servicio de la API de Cloud Composer v2.

    Confirma que usas la cuenta de servicio deseada para tu entorno y haz clic en Otorgar.

  2. En el campo Nombre, ingresa example-environment.

  3. En la lista desplegable Ubicación, selecciona una región para el entorno de Managed Airflow. En esta guía, se usa la región us-central1.

  4. Para otras opciones de configuración del entorno, usa los valores predeterminados proporcionados.

  5. Haz clic en Crear y espera hasta que se cree el entorno.

  6. Cuando termine, aparecerá una marca de verificación verde junto al nombre del entorno.

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 DAG de Airflow de ejemplo definido en el archivo quickstart.py. El código de Python en este archivo hace lo siguiente:

  1. Crea un DAG composer_sample_dag. Este DAG se ejecuta todos los días.
  2. 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:

import datetime

from airflow import models
from airflow.operators import bash

# If you are running Airflow in more than one time zone
# see https://airflow.apache.org/docs/apache-airflow/stable/timezone.html
# for best practices
YESTERDAY = datetime.datetime.now() - datetime.timedelta(days=1)

default_args = {
    "owner": "Composer Example",
    "depends_on_past": False,
    "email": [""],
    "email_on_failure": False,
    "email_on_retry": False,
    "retries": 1,
    "retry_delay": datetime.timedelta(minutes=5),
    "start_date": YESTERDAY,
}

with models.DAG(
    "composer_quickstart",
    catchup=False,
    default_args=default_args,
    schedule_interval=datetime.timedelta(days=1),
) as dag:
    # Print the dag_run id from the Airflow logs
    print_dag_run_conf = bash.BashOperator(
        task_id="print_dag_run_conf", bash_command="echo {{ dag_run.id }}"
    )

Sube el archivo DAG al bucket de tu entorno

Cada entorno de Managed Airflow tiene un bucket de Cloud Storage asociado. Airflow en Managed Airflow 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:

  1. En la Google Cloud console, ve a la página Entornos.

    Ir a Entornos

  2. En la lista de entornos, haz clic en el nombre de tu entorno, example-environment. Se abrirá la página Detalles del entorno.

  3. Haz clic en Abrir carpeta de DAG. Se abre la página de detalles del bucket.

  4. Haz clic en Subir archivos y, luego, selecciona tu copia de quickstart.py.

  5. Para subir el archivo, haz clic en Abrir.

Visualiza el DAG

Después de subir el archivo DAG, Airflow hace lo siguiente:

  1. Analiza el archivo DAG que subiste. Es posible que el DAG tarde unos minutos en estar disponible para Airflow.
  2. Agrega el DAG a la lista de DAG disponibles.
  3. Ejecuta el DAG según la programación que proporcionaste en el archivo DAG.

Para verificar que tu DAG se procese sin errores y esté disponible en Airflow, visualízalo en la IU de DAG. La IU de DAG es la interfaz de Managed Airflow para ver la información del DAG en la Google Cloud console. Managed Airflow también proporciona acceso a la IU de Airflow, que es una interfaz web nativa de Airflow.

  1. Espera unos cinco minutos para que Airflow procese el archivo DAG que subiste antes y complete la primera ejecución del DAG (que se explica más adelante).

  2. En la Google Cloud console, ve a la página Entornos.

    Ir a Entornos

  3. En la lista de entornos, haz clic en el nombre de tu entorno, example-environment. Se abrirá la página Detalles del entorno.

  4. Ve a la pestaña DAG.

  5. Verifica que el DAG composer_quickstart esté presente en la lista de DAG.

    En la lista de DAGs, se muestra el DAG composer_quickstart con información adicional, como el estado y la programación.
    Figura 1. La lista de DAG muestra el DAG composer_quickstart (haz clic para ampliar)

Visualiza los detalles de la ejecución del DAG

Una sola ejecución de un DAG se denomina ejecución del DAG. Airflow ejecuta de inmediato una ejecución del DAG para el DAG de ejemplo porque la fecha de inicio en el archivo DAG está establecida como 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 metainformación sobre el DAG (identificador numérico de la ejecución del DAG).

  1. En la pestaña DAG, haz clic en composer_quickstart. Se abrirá la pestaña Ejecuciones del DAG.

  2. En la lista de ejecuciones del DAG, haz clic en la primera entrada.

    En la lista de ejecuciones de DAG, se muestra la ejecución de DAG reciente (su fecha de ejecución y estado).
    Figura 2. La lista de ejecuciones del DAG para el DAG composer_quickstart (haz clic para ampliar)
  3. Se muestran los detalles de la ejecución del DAG, que detallan la información sobre las tareas individuales del DAG de ejemplo.

    La lista de tareas con una entrada print_dag_run_conf, su hora de inicio, hora de finalización y duración
    Figura 3. La lista de tareas que se ejecutaron en la ejecución del DAG (haz clic para ampliar)
  4. En la sección Registros de la ejecución del DAG , se enumeran los registros de todas las tareas de la ejecución del DAG. Puedes ver el resultado del comando echo en los registros.

    Entradas de registro de la tarea. Una de ellas es Output y la otra enumera un identificador.
    Figura 4. Registros de la tarea print_dag_run_conf (haz clic para ampliar)

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu Google Cloud cuenta de por los recursos que usaste en esta página.

Borra los recursos que se usaron en este instructivo:

  1. Borra el entorno de Managed Airflow:

    1. En la Google Cloud console, ve a la página Entornos.

      Ir a Entornos

    2. Selecciona example-environment y haz clic en Borrar.

    3. Espera hasta que se borre el entorno.

  2. Borra el bucket de tu entorno. Aunque borres el entorno de Managed Airflow, no se borra el bucket.

    1. En la Google Cloud console, ve a la página Almacenamiento > Navegador.

      Ir a Almacenamiento > Navegador

    2. Selecciona el bucket del entorno y haz clic en Borrar. Por ejemplo, este bucket puede llamarse us-central1-example-environ-c1616fe8-bucket.

¿Qué sigue?