Acceder a la interfaz web de Airflow

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Apache Airflow incluye una interfaz de usuario web llamada interfaz de usuario de Airflow, que puedes usar para gestionar DAGs de Airflow, ver registros de ejecuciones de DAGs, monitorizar Airflow y realizar acciones administrativas.

Acerca del servidor web de Airflow

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

Antes de empezar

  • Debes tener un rol que pueda ver los entornos de Cloud Composer. Para obtener más información, consulta Control de acceso.

  • Durante la creación del entorno, Cloud Composer configura la URL del servidor web que ejecuta la interfaz de usuario de Airflow. La URL no se puede personalizar.

  • Cloud Composer 2 admite la función Control de acceso a la interfaz de Airflow (control de acceso basado en roles de Airflow) para la interfaz de Airflow.

  • Si la opción Controles de APIs > Aplicaciones de terceros no configuradas > No permitir que los usuarios accedan a aplicaciones de terceros está habilitada en Google Workspace y la aplicación Apache Airflow en Cloud Composer no está permitida explícitamente, los usuarios no podrán acceder a la interfaz de usuario de Airflow a menos que permitan explícitamente la aplicación. Para permitir el acceso, sigue los pasos que se indican en Permitir el acceso a la interfaz de Airflow en Google Workspace.

  • Si se usan enlaces de acceso contextual de Chrome Enterprise Premium con niveles de acceso que dependen de atributos de dispositivo y no se excluye la aplicación Apache Airflow en Cloud Composer, no se podrá acceder a la interfaz de usuario de Airflow debido a un bucle de inicio de sesión. Para permitir el acceso, sigue los pasos que se indican en Permitir el acceso a la interfaz de usuario de Airflow en las vinculaciones de acceso contextual.

  • Si se configuran reglas de entrada en un perímetro de Controles de Servicio de VPC que protege el proyecto y la regla de entrada que permite el acceso al servicio Cloud Composer usa el tipo de identidad ANY_SERVICE_ACCOUNT o ANY_USER_ACCOUNT, los usuarios no podrán acceder a la interfaz de usuario de Airflow y se quedarán en un bucle de inicio de sesión. Para obtener más información sobre cómo abordar esta situación, consulta Permitir el acceso a la interfaz de usuario de Airflow en las reglas de entrada de Controles de Servicio de VPC.

  • Cloud Composer no admite el uso de identidades de terceros en reglas de entrada y salida para permitir operaciones de la interfaz de usuario de Apache Airflow. Sin embargo, puedes usar el tipo de identidad ANY_IDENTITY en las reglas de entrada y salida para permitir el acceso a todas las identidades, incluidas las de terceros. Para obtener más información sobre el tipo de identidad ANY_IDENTITY, consulta Reglas de entrada y salida.

Acceder a la interfaz de usuario de Airflow

En Cloud Composer 2, el servidor web de Airflow se ejecuta como una carga de trabajo en el clúster de tu entorno. El servidor web se implementa en el dominio composer.googleusercontent.com y proporciona acceso a la interfaz de usuario de Airflow.

Cloud Composer 2 proporciona acceso a la interfaz en función de las identidades de los usuarios y de los enlaces de políticas de gestión de identidades y accesos definidos para los usuarios. En comparación con Cloud Composer 1, Cloud Composer 2 usa un mecanismo diferente que no depende de Identity-Aware Proxy.

Acceder a la interfaz de usuario de Airflow desde la Google Cloud consola

Para acceder a la interfaz de usuario de Airflow desde la consola Google Cloud , sigue estos pasos:

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

    Ir a Entornos

  2. En la columna Servidor web de Airflow, sigue el enlace Airflow de tu entorno.

  3. Inicia sesión con una cuenta de Google que tenga los permisos adecuados.

Obtener la URL de la interfaz de usuario de Airflow con Google Cloud CLI

Puedes acceder a la interfaz de usuario de Airflow desde cualquier navegador web. Para obtener la URL de la interfaz de usuario de Airflow, ejecuta el siguiente comando en la CLI de Google Cloud:

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION

Haz los cambios siguientes:

  • ENVIRONMENT_NAME: el nombre de tu entorno.
  • LOCATION: la región en la que se encuentra el entorno.

El comando de la CLI de Google Cloud muestra las propiedades de un entorno de Cloud Composer, incluidas las URLs de la interfaz de usuario de Airflow. Las URLs se indican como airflowUri y airflowByoidUri:

config:
  airflowUri: https://example-dot-us-central1.composer.googleusercontent.com
  airflowByoidUri: https://example-dot-us-central1.composer.byoid.googleusercontent.com

Reiniciar el servidor web

Cuando depures o soluciones problemas en entornos de Cloud Composer, es posible que algunos se resuelvan reiniciando el servidor web de Airflow. Puedes reiniciar el servidor web con la API restartWebServer o el comando restart-web-server en Google Cloud CLI:

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

Haz los cambios siguientes:

  • ENVIRONMENT_NAME: el nombre de tu entorno.
  • LOCATION: la región en la que se encuentra el entorno.

Configurar el acceso a la red del servidor web

Los parámetros de acceso al servidor web de Airflow no dependen de la configuración de red de tu entorno. En su lugar, debes configurar el acceso al servidor web por separado. Por ejemplo, un entorno de IP privada puede seguir teniendo acceso a la interfaz de usuario de Airflow desde Internet.

No es posible configurar los intervalos de IP permitidos para que sean direcciones IP privadas.

Consola

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

    Ir a Entornos

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

  3. Ve a la pestaña Configuración del entorno.

  4. En la sección Configuración de red, busca el elemento Control de acceso al servidor web y haz clic en Editar.

  5. En el cuadro de diálogo Control de acceso a la red del servidor web, haz lo siguiente:

    • Para proporcionar acceso al servidor web Airflow desde todas las direcciones IP, selecciona Permitir acceso desde todas las direcciones IP.

    • Para restringir el acceso solo a intervalos de IP específicos, selecciona Permitir el acceso solo desde direcciones IP específicas. En el campo Intervalo de IP, especifica un intervalo de IP en notación CIDR. En el campo Descripción, especifica una descripción opcional para este intervalo. Si quiere especificar más de un intervalo, haga clic en Añadir intervalo de IPs.

    • Para prohibir el acceso a todas las direcciones IP, selecciona Permitir el acceso solo desde direcciones IP específicas y haz clic en Eliminar elemento junto a la entrada de intervalo vacía.

gcloud

Cuando actualizas un entorno, los siguientes argumentos controlan los parámetros de acceso del servidor web:

  • --web-server-allow-all proporciona acceso a Airflow desde todas las direcciones IP. Es la opción predeterminada.

  • --update-web-server-allow-ip restringe el acceso solo a intervalos de IP de origen específicos. Para especificar varios intervalos de IP, usa este argumento varias veces.

  • --web-server-deny-all prohíbe el acceso a todas las direcciones IP.

gcloud composer environments update ENVIRONMENT_NAME \
    --location LOCATION \
    --update-web-server-allow-ip ip_range=WS_IP_RANGE,description=WS_RANGE_DESCRIPTION

Haz los cambios siguientes:

  • ENVIRONMENT_NAME: el nombre de tu entorno.
  • LOCATION: la región en la que se encuentra el entorno.
  • WS_IP_RANGE: el intervalo de IPs, en notación CIDR, que puede acceder a la interfaz de usuario de Airflow.
  • WS_RANGE_DESCRIPTION: la descripción del intervalo de IPs.

Ejemplo:

gcloud composer environments update example-environment \
    --location us-central1 \
    --update-web-server-allow-ip ip_range=192.0.2.0/24,description="example range" \
    --update-web-server-allow-ip ip_range=192.0.4.0/24,description="example range 2"

API

  1. Crea una solicitud a la API [environments.patch][api-patch].

  2. En esta solicitud:

    1. En el parámetro updateMask, especifique la máscara config.webServerNetworkAccessControl.

    2. En el cuerpo de la solicitud, especifica cómo se deben guardar los registros de tareas de Airflow:

      • Para proporcionar acceso a Airflow desde todas las direcciones IP, especifique un elemento config vacío (el elemento webServerNetworkAccessControl no debe estar presente).

      • Para restringir el acceso solo a intervalos de IP específicos, especifica uno o varios intervalos en allowedIpRanges.

      • Para prohibir el acceso a todas las direcciones IP, especifica un elemento webServerNetworkAccessControl vacío. El elemento webServerNetworkAccessControl debe estar presente, pero no debe contener ningún elemento allowedIpRanges.

{
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "WS_IP_RANGE",
          "description": "WS_RANGE_DESCRIPTION"
        }
      ]
    }
  }
}

Haz los cambios siguientes:

  • WS_IP_RANGE: el intervalo de IPs, en notación CIDR, que puede acceder a la interfaz de usuario de Airflow.
  • WS_RANGE_DESCRIPTION: la descripción del intervalo de IPs.

Ejemplo:

// PATCH https://composer.googleapis.com/v1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.webServerNetworkAccessControl

{
  "config": {
    "webServerNetworkAccessControl": {
      "allowedIpRanges": [
        {
          "value": "192.0.2.0/24",
          "description": "example range"
        },
        {
          "value": "192.0.4.0/24",
          "description": "example range 2"
        }
      ]
    }
  }
}

Terraform

En el bloque allowed_ip_range, en web_server_network_access_control especifica los intervalos de IP que pueden acceder al servidor web.

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "ENVIRONMENT_NAME"
  region = "LOCATION"

  config {

    web_server_network_access_control {

      allowed_ip_range {
        value = "WS_IP_RANGE"
        description = "WS_RANGE_DESCRIPTION"
      }

    }

  }
}

Haz los cambios siguientes:

  • WS_IP_RANGE: el intervalo de IPs, en notación CIDR, que puede acceder a la interfaz de usuario de Airflow.
  • WS_RANGE_DESCRIPTION: la descripción del intervalo de IPs.

Ejemplo:

resource "google_composer_environment" "example" {
  provider = google-beta
  name = "example-environment"
  region = "us-central1"

  config {

    web_server_network_access_control {
      allowed_ip_range {
        value = "192.0.2.0/24"
        description = "example range"
      },
      allowed_ip_range {
        value = "192.0.4.0/24"
        description = "example range 2"
      }

    }
}

Siguientes pasos