Acceder a la interfaz web de Airflow

Cloud Composer 1 | Cloud Composer 2

Apache Airflow incluye una interfaz web que puedes usar para administrar flujos de trabajo (DAG), administrar el entorno de Airflow y realizar acciones administrativas. Por ejemplo, puedes usar la interfaz web para revisar el progreso de un DAG, configurar una nueva conexión de datos o revisar los registros de ejecuciones anteriores de DAG.

Servidor web de Airflow

Cada entorno de Cloud Composer tiene un servidor web que ejecuta la interfaz web de Airflow. El servidor web forma parte de la arquitectura del entorno de Cloud Composer.

El servidor web analiza los archivos de definición de DAG en la carpeta dags/ y debe poder acceder a los datos y recursos de un DAG para cargarlo y entregar solicitudes HTTP.

El servidor web actualiza los DAG cada 60 segundos, que es el worker_refresh_interval predeterminado en Cloud Composer. Puede producirse un error del servidor web si el servidor web no puede analizar todos los DAG dentro del intervalo de actualización.

Si hay una gran cantidad de archivos de DAG o si hay una carga de trabajo no trivial para cargar los archivos DAG, puede ocurrir un exceso de 60 segundos para cargar los DAG. Para garantizar que se pueda acceder al servidor web independientemente del tiempo de carga de DAG, puedes configurar la carga de DAG asíncrona para analizar y cargar DAG en segundo plano en un intervalo preconfigurado (disponible en composer-1.7.1-airflow-1.10.2 y en versiones posteriores). Con esta configuración, también se puede reducir el tiempo de actualización del DAG.

Además de superar el intervalo de actualización del trabajador, el servidor web puede manejar correctamente los errores de carga de DAG en la mayoría de los casos. Los DAG que provocan la falla o la salida del servidor web pueden provocar errores en el navegador. Para obtener más información, consulta Soluciona problemas de DAG.

Si sigues teniendo problemas con el servidor web debido al análisis del DAG, te recomendamos que uses la carga asíncrona del DAG.

Reinicia el servidor web (vista previa)

Cuando depuras o solucionas problemas de entornos de Cloud Composer, puedes resolver algunos problemas si reinicias el servidor web de Airflow. Puedes reiniciar el servidor web mediante la API de RestartWebServer o el comando de gcloud restart-web-server:

gcloud beta composer environments restart-web-server ENVIRONMENT_NAME
  --location=LOCATION

Antes de comenzar

  • Debes tener una función que pueda ver los entornos de Cloud Composer. Para obtener más información, consulta Guía de control de acceso.

  • Durante la creación del entorno, Cloud Composer configura la URL del servidor web que ejecuta la interfaz web de Airflow. La URL no es personalizable.

  • La función de control de acceso basado en funciones (RBAC) para la interfaz web de Airflow es compatible con entornos de Cloud Composer que ejecutan la versión 1.13.4 o posterior de Composer, la versión de Airflow 1.10.10 o posterior, y Python 3.

Accede a la interfaz web

El servicio del servidor web de Airflow se implementa en el dominio appspot.com y proporciona acceso a la interfaz web de Airflow. Identity-Aware Proxy protege la interfaz y el acceso en función de las identidades de los usuarios.

Después de crear un nuevo entorno de Cloud Composer, la interfaz web demora hasta 25 minutos en terminar el hosting y estar accesible.

Accede a la interfaz web desde Google Cloud Console

Para acceder a la interfaz web de Airflow desde Google Cloud Console, sigue estos pasos:

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

    Ir a Entornos

  2. En la columna Airflow webserver, sigue el vínculo de Airflow para tu entorno.

  3. Accede con la Cuenta de Google que tiene los permisos correspondientes.

Limita el acceso al servidor web de Airflow

Los entornos de Composer le permiten limitar el acceso al servidor web de Airflow.

Puedes bloquear todo el acceso o permitir el acceso desde rangos de IP externos IPv4 o IPv6 específicos.

Por el momento, no se pueden configurar los rangos de IP permitidos mediante direcciones IP privadas.

Recupera la URL de la interfaz web a través de la herramienta de línea de comandos de gcloud

Puedes acceder a la interfaz web de Airflow desde cualquier navegador web. Para obtener la URL de la interfaz web, ingresa el siguiente comando de gcloud:

gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION

Donde:

  • ENVIRONMENT_NAME es el nombre del entorno.
  • LOCATION es la región de Compute Engine donde se encuentra el entorno.

El comando de gcloud muestra las propiedades de un entorno de Cloud Composer, incluida la URL de la interfaz web. La URL aparece como airflowUri.

airflowUri: https://uexamplebcd3fff-tp.appspot.com/
  dagGcsPrefix: gs://us-central1-example-environment-00a47695-bucket/dags
  gkeCluster: projects/example-project/zones/us-central1-a/clusters/us-central1-example-environment-00a47695-gke
  nodeConfig:
    diskSizeGb: 100
    location: projects/example-project/zones/us-central1-a
    machineType: projects/example-project/zones/us-central1-a/machineTypes/n1-standard-1
    network: projects/example-project/global/networks/default
    oauthScopes:
    - https://www.googleapis.com/auth/cloud-platform
    serviceAccount: N13597NNN465-compute@developer.gserviceaccount.com
  nodeCount: 3
  softwareConfig:
    imageVersion: composer-0.5.1-airflow-1.9.0
createTime: '2018-05-19T02:13:36.749Z'
name: projects/example-project/locations/us-central1/environments/example-environment
state: RUNNING
updateTime: '2018-05-19T02:30:21.387Z'
uuid: 66bd6a28-5b48-4da3-a0aa-898199b569da

Configura la carga asíncrona de DAG

Cuando la carga asíncrona de DAG está habilitada, el servidor web de Airflow crea un proceso nuevo. Este proceso carga los DAG en segundo plano, envía DAG recién cargados en intervalos definidos por la opción dagbag_sync_interval y, luego, se suspende.

El proceso se activa de forma periódica para volver a cargar los DAG. El intervalo se define mediante la opción collect_dags_interval.

Para habilitar la carga asíncrona de DAG, haz lo siguiente:

  1. Inhabilita la serialización de DAG. No se puede usar la carga asíncrona de DAG con la serialización de DAG. El uso de las opciones de configuración async_dagbag_loader y store_serialized_dags de Airflow genera errores HTTP 503 y interrumpe tu entorno.

  2. Anula las siguientes opciones de configuración de Airflow:

    Sección Clave Valor Notas
    webserver async_dagbag_loader True El valor predeterminado es False.
    webserver collect_dags_interval 30 El valor predeterminado es 30. Usa un valor menor para realizar actualizaciones más rápidas.
    webserver dagbag_sync_interval 10 El valor predeterminado es 10.
    webserver worker_refresh_interval 3600 El valor predeterminado es 60. Con la carga asíncrona de DAG, puedes usar un intervalo de actualización más largo.