Accedi all'interfaccia utente web di Apache Airflow

Cloud Composer 1 | Cloud Composer 2

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 di DAG precedenti.

Server web Airflow

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

Prima di iniziare

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

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

  • Cloud Composer 2 supporta la funzionalità Controllo dell'accesso UI di Airflow (Controllo dell'accesso basato sui ruoli di Airflow) per l'interfaccia web di Airflow.

  • Se l'opzione Controlli API > App di terze parti non configurate > Non consentire agli utenti di accedere alle app di terze parti è abilitata in Google Workspace e l'opzione Apache Airflow nell'app Cloud Composer non è esplicitamente consentita, gli utenti non possono accedere all'interfaccia utente di Airflow a meno che non autorizzino esplicitamente l'applicazione. Per consentire l'accesso, segui i passaggi indicati in Consentire l'accesso alla UI di Airflow in Google Workspace.

Accesso all'interfaccia web di Airflow

Il server web Airflow viene eseguito come carico di lavoro nel cluster del tuo ambiente. Viene eseguito il deployment del server web nel dominio composer.googleusercontent.com e viene fornito l'accesso all'interfaccia web di Airflow.

Cloud Composer 2 fornisce l'accesso all'interfaccia in base alle identità utente e alle associazioni di criteri IAM definite per gli utenti. Rispetto a Cloud Composer 1, Cloud Composer 2 utilizza un meccanismo diverso che non si basa su Identity-Aware Proxy.

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 a Ambienti

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

Limitazione dell'accesso al server web Airflow

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

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

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 dell'interfaccia web, inserisci il seguente 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 un ambiente Cloud Composer, inclusi gli URL per l'interfaccia web. Gli URL sono elencati come airflowUri e airflowByoidUri:

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

Riavvio del server web

Durante il debug o la risoluzione dei problemi degli ambienti Cloud Composer, alcuni problemi possono essere risolti riavviando il server web Airflow. Puoi riavviare il server web utilizzando l'API restartWebServer o il comando gcloud restart-web-server:

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

Configurazione dell'accesso alla rete del server web

I parametri di accesso al server web di Airflow non dipendono dal tipo di ambiente. ma l'accesso al server web deve essere configurato separatamente. Ad esempio, un ambiente IP privato può comunque avere la UI di Airflow accessibile da internet.

Non è possibile configurare gli intervalli IP consentiti utilizzando indirizzi IP privati.

Console

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

    Vai a Ambienti

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

  3. Vai alla scheda Configurazione dell'ambiente.

  4. Nella sezione Configurazione di rete, trova la voce Controllo accesso server web e fai clic su Modifica.

  5. Nella finestra di dialogo Controllo accesso rete 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 Consenti l'accesso solo da indirizzi IP specifici. Nel campo Intervallo IP, specifica un intervallo IP nella notazione CIDR. Nel campo Descrizione, specifica una descrizione facoltativa per l'intervallo. Se vuoi specificare più di un intervallo, fai clic su Aggiungi intervallo IP.

    • Per vietare l'accesso per tutti gli indirizzi IP, seleziona Consenti l'accesso solo da indirizzi IP specifici e fai clic su Elimina elemento accanto alla voce dell'intervallo vuoto.

gcloud

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

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

  • --web-server-allow-ip limita l'accesso solo a intervalli IP di origine specifici. 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 all'interfaccia utente 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 la maschera config.webServerNetworkAccessControl.

    2. Nel corpo della richiesta, specifica in che modo devono essere salvati i log delle attività di Airflow:

      • Per fornire l'accesso a Airflow da tutti gli indirizzi IP, specifica un elemento config vuoto (l'elemento 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 per tutti gli indirizzi IP, specifica un elemento webServerNetworkAccessControl vuoto. 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 all'interfaccia utente 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, specifica gli 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 alla 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