Accedi all'interfaccia utente web di Apache Airflow

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

Apache Airflow include Un'interfaccia utente web (UI) che puoi utilizzare per gestire i flussi di lavoro (DAG), l'ambiente Airflow, ed eseguire azioni amministrative. Ad esempio, puoi utilizzare l'interfaccia web per esaminare l'avanzamento di un DAG, configurare una nuova connessione dati o esaminare i log delle esecuzioni precedenti dei DAG.

Server web Airflow

Ogni ambiente Cloud Composer dispone di un server web esegue l'interfaccia web di Airflow. Il server web fa parte Architettura dell'ambiente Cloud Composer.

Il server web analizza i file di definizione dei DAG nella cartella dags/ e devi essere in grado di accedere ai dati e alle risorse di un DAG per caricare il DAG e gestire le richieste HTTP.

Il server web aggiorna i DAG ogni 60 secondi (impostazione predefinita) worker_refresh_interval in Cloud Composer. Un errore del server web può si verificano se il server web non è in grado di analizzare tutti i DAG nell'intervallo di aggiornamento.

Il caricamento dei DAG può superare i 60 secondi se è presente un numero elevato di DAG o esiste un carico di lavoro non banale per caricare i file DAG. Per garantire che rimane accessibile indipendentemente dal tempo di caricamento del DAG, puoi configurare il caricamento dei DAG asincrono per analizzare e caricare i DAG in background a intervalli preconfigurati (disponibile composer-1.7.1-airflow-1.10.2 e versioni successive). Questa configurazione può anche ridurre il tempo di aggiornamento dei DAG.

A parte il superamento dell'intervallo di aggiornamento del worker, il server web può gestire agevolmente gli errori di caricamento dei DAG nella maggior parte dei casi. I DAG che causano l'arresto anomalo o l'uscita del server web potrebbero causare errori di vengano restituiti nel browser. Per informazioni, vedi Risoluzione dei problemi dei DAG.

Se continui a riscontrare problemi del server web a causa dell'analisi DAG, consigliamo di utilizzare il caricamento asincrono dei DAG.

Prima di iniziare

  • Devi avere un ruolo in grado di visualizzare gli ambienti Cloud Composer. Per ulteriori informazioni, vedi Controllo dell'accesso.

  • Durante la creazione dell'ambiente, Cloud Composer configura URL del server web che esegue l'interfaccia web di Airflow. L'URL è non personalizzabili.

  • Il controllo dell'accesso all'interfaccia utente di Airflow (Controllo degli accessi basato su ruoli di Airflow) per l'interfaccia web di Airflow è supportato per gli ambienti Cloud Composer che eseguono la versione Composer 1.13.4 o successiva, Airflow versione 1.10.10 o successiva e Python 3.

Accesso all'interfaccia web di Airflow

Viene eseguito il deployment del servizio server web di Airflow nel dominio appspot.com e consente di accedere all'interfaccia web di Airflow. Cloud Composer 1 fornisce l'accesso all'interfaccia in base alle identità utente e associazioni di criteri definite per gli utenti. Cloud Composer 1 utilizza Identity-Aware Proxy a questo scopo.

Dopo aver creato un nuovo ambiente Cloud Composer, il completamento dell'interfaccia web richiede fino a 25 minuti hosting e diventano accessibili.

Accesso all'interfaccia web dalla console Google Cloud

Per accedere all'interfaccia web di Airflow dalla console Google Cloud:

  1. Nella console Google Cloud, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Nella colonna Server web Airflow, segui il link Airflow per il tuo ambiente.

  3. Accedi con l'Account Google che dispone delle autorizzazioni appropriate.

Limitazione dell'accesso al server web Airflow

Gli ambienti Composer consentono di limitare l'accesso al server web Airflow:

  • Puoi bloccare completamente gli accessi o consentire l'accesso da indirizzi IPv4 o IPv6 esterni specifici intervalli IP.
  • Non è possibile configurare gli intervalli IP consentiti utilizzando l'IP privato indirizzi IP esterni.

Recupero dell'URL dell'interfaccia web tramite lo strumento a riga di comando gcloud

Puoi accedere all'interfaccia web di Airflow da qualsiasi browser web. Per ottenere l'URL Per l'interfaccia web, inserisci questo comando gcloud:

gcloud composer environments describe ENVIRONMENT_NAME \
  --location LOCATION

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente.
  • LOCATION: la regione in cui si trova l'ambiente.

Il comando gcloud mostra le proprietà di Cloud Composer compreso l'URL dell'interfaccia web. L'URL è indicato come airflowUri.

config:
  airflowUri: https://example-tp.appspot.com

Configurazione del caricamento asincrono dei DAG

Quando il caricamento DAG asincrono è abilitato, il server web Airflow è crea un nuovo processo. Questo processo carica i DAG in background, invia i DAG appena caricati a intervalli definiti dall'opzione dagbag_sync_interval e poi si mette in sospensione.

Il processo si riattiva periodicamente per ricaricare i DAG. L'intervallo è definito dall'opzione collect_dags_interval.

Per abilitare il caricamento asincrono dei DAG:

  1. Disabilita la serializzazione DAG. Il caricamento DAG asincrono non può essere utilizzato con la serializzazione DAG. Utilizzo Configurazione Airflow async_dagbag_loader e store_serialized_dags genera errori HTTP 503 e compromette l'ambiente.

  2. Esegui l'override delle seguenti opzioni di configurazione di Airflow:

    Sezione Chiave Valore Note
    webserver async_dagbag_loader True Il valore predefinito è False.
    webserver collect_dags_interval 30 Il valore predefinito è 30. Utilizza un valore più basso per aggiornamenti più rapidi.
    webserver dagbag_sync_interval 10 Il valore predefinito è 10.
    webserver worker_refresh_interval 3600 Il valore predefinito è 60. Con il caricamento asincrono dei DAG, puoi utilizzare un intervallo di aggiornamento più lungo.

Riavvio del server web

Si sono verificati alcuni problemi durante il debug o la risoluzione dei problemi degli ambienti Cloud Composer può essere risolto riavviando il server web Airflow. Puoi riavviare il web utilizzando l'API restartWebServer oppure il comando gcloud restart-web-server:

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

Configurazione dell'accesso di rete al server web

I parametri di accesso al server web di Airflow non dipendono dal tipo di completamente gestito di Google Cloud. Puoi invece configurare l'accesso al server web separatamente. Per Ad esempio, un ambiente IP privato può comunque avere la UI di Airflow accessibile da internet.

Non è possibile configurare gli intervalli IP consentiti utilizzando l'IP privato indirizzi IP esterni.

Console

  1. Nella console Google Cloud, vai alla pagina Ambienti.

    Vai ad Ambienti

  2. Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Si apre la pagina Dettagli ambiente.

  3. Vai alla scheda Configurazione dell'ambiente.

  4. Nella sezione Configurazione di rete, individua il file Elemento Controllo dell'accesso al server web e fai clic su Modifica.

  5. Nella finestra di dialogo Controllo dell'accesso di rete del server web:

    • Per fornire l'accesso al server web Airflow da tutti gli indirizzi IP, Seleziona Consenti l'accesso da tutti gli indirizzi IP.

    • Per limitare l'accesso solo a intervalli IP specifici, seleziona Consentire l'accesso solo da indirizzi IP specifici. Nell'intervallo IP specifica un intervallo IP nella notazione CIDR. Nel nel campo Description (Descrizione), specifica una descrizione facoltativa intervallo. Se vuoi specificare più di un intervallo, fai clic su Aggiungi IP intervallo.

    • Per vietare l'accesso per tutti gli indirizzi IP, seleziona Consenti l'accesso solo da indirizzi IP specifici, quindi fai clic su Elimina elemento accanto al campo voce di intervallo.

gcloud

Quando aggiorni un ambiente, i seguenti argomenti controllano il server web parametri di accesso:

  • --web-server-allow-all fornisce l'accesso ad Airflow da tutti gli indirizzi IP. Questa è l'opzione predefinita.

  • --web-server-allow-ip limita l'accesso solo a un IP di origine specifico intervalli di tempo. Per specificare diversi intervalli IP, utilizza questo argomento più volte.

  • --web-server-deny-all vieta l'accesso per tutti gli indirizzi IP.

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

Sostituisci quanto segue:

  • ENVIRONMENT_NAME: il nome dell'ambiente.
  • LOCATION: la regione in cui si trova l'ambiente.
  • WS_IP_RANGE: l'intervallo IP, nella notazione CIDR, che può accedere ai UI di Airflow.
  • WS_RANGE_DESCRIPTION: la descrizione dell'intervallo IP.

Esempio:

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

API

  1. Crea una richiesta API [environments.patch][api-patch].

  2. In questa richiesta:

    1. Nel parametro updateMask, specifica Maschera config.webServerNetworkAccessControl.

    2. Nel corpo della richiesta, specifica come devono essere i log delle attività Airflow risparmiati:

      • Per fornire l'accesso ad Airflow da tutti gli indirizzi IP, specifica un'opzione elemento config vuoto (il webServerNetworkAccessControl non deve essere presente).

      • Per limitare l'accesso solo a intervalli IP specifici, specifica uno o più intervalli in allowedIpRanges.

      • Per vietare l'accesso a tutti gli indirizzi IP, specifica un campo vuoto Elemento webServerNetworkAccessControl. La L'elemento webServerNetworkAccessControl deve essere presente, ma non deve contenere un elemento allowedIpRanges.

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

Sostituisci quanto segue:

  • WS_IP_RANGE: l'intervallo IP, nella notazione CIDR, che può accedere ai UI di Airflow.
  • WS_RANGE_DESCRIPTION: la descrizione dell'intervallo IP.

Esempio:

// 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": "office net 1"
        },
        {
          "value": "192.0.4.0/24",
          "description": "office net 3"
        }
      ]
    }
  }
}

Terraform

Nel blocco allowed_ip_range, in web_server_network_access_control specificare intervalli IP che possono accedere al server 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"
      }

    }

  }
}

Sostituisci:

  • WS_IP_RANGE con l'intervallo IP, nella notazione CIDR, che può accedere UI di Airflow.
  • WS_RANGE_DESCRIPTION con la descrizione dell'intervallo IP.

Esempio:

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 = "office net 1"
      },
      allowed_ip_range {
        value = "192.0.4.0/24"
        description = "office net 3"
      }

    }
}

Passaggi successivi