Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Questa pagina fornisce informazioni e passaggi per la risoluzione dei problemi comuni del web server Airflow.
Il server web di Airflow è un componente di Airflow che fornisce un'interfaccia utente per la gestione dei DAG e delle attività di Airflow. Questa pagina descrive la procedura di risoluzione dei problemi relativi all'accesso al server web di Airflow del tuo ambiente o agli avvisi relativi al server web visibili nei log di Airflow.
Impossibile accedere all'interfaccia utente di Airflow quando i controlli di accesso alla rete sono abilitati
Sintomo: dopo aver configurato i controlli di accesso al server web, non è possibile accedere all'interfaccia utente di Airflow. Di solito, il codice di errore visualizzato in questa situazione è 403.
Informazioni sul problema: Cloud Composer supporta i controlli di accesso di rete del server web, che ti consentono di specificare gli intervalli IP che possono connettersi al server web.
I problemi di accesso all'interfaccia utente di Airflow di solito generano l'errore 403. Per verificare se l'errore è correlato ai controlli dell'accesso di rete del server web:
- Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Viene visualizzata la pagina Dettagli dell'ambiente.
- Vai alla scheda Configurazione dell'ambiente.
- Verifica che l'elemento Controllo dell'accesso al server web sia impostato su Tutti gli indirizzi IP hanno accesso (impostazione predefinita).
- Se è configurato un valore diverso da Tutti gli indirizzi IP hanno accesso (valore predefinito), il controllo dell'accesso di rete è abilitato e la visibilità dell'interfaccia utente di Airflow è limitata agli intervalli di indirizzi IPv4 e IPv6 forniti. In questo caso, il problema potrebbe essere correlato ai controlli di accesso alla rete del server web.
Nella maggior parte dei casi, la causa del problema è la mancata corrispondenza tra l'IP previsto che hai specificato e l'IP effettivamente risolto per la connessione all'UI di Airflow. Per risolvere il problema:
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Viene visualizzata la pagina Dettagli dell'ambiente.
Vai alla scheda Configurazione dell'ambiente.
Individua l'elemento Controllo dell'accesso al server web e fai clic su Modifica.
Nella finestra di dialogo Controllo dell'accesso di rete al server web, seleziona Consenti l'accesso da tutti gli indirizzi IP.
Accedi all'interfaccia utente di Airflow più volte e verifica che funzioni senza problemi:
Se non riscontri problemi, vai al passaggio successivo.
Se a questo punto riscontri un problema, significa che potrebbe essere correlato alla configurazione delle autorizzazioni IAM. Per maggiori informazioni sulle autorizzazioni IAM per Cloud Composer, consulta Controllo dell'accesso.
Nella finestra di dialogo Controllo dell'accesso di rete al server web, seleziona Consenti l'accesso solo da indirizzi IP specifici.
Aggiungi l'intervallo IP
0.0.0.0/0
, poi accedi all'interfaccia utente di Airflow più volte e verifica che funzioni senza problemi:Se non riscontri problemi, l'IP con cui ti colleghi è un indirizzo IPv4.
Se a questo punto si verifica un problema, significa che l'IP con cui ti colleghi è un indirizzo IPv6.
Elimina l'intervallo IP
0.0.0.0/0
e aggiungi l'intervallo IP::/0
.Se non riscontri problemi, l'IP con cui ti colleghi è un indirizzo IPv6.
Se a questo punto si verifica un problema, significa che l'IP con cui ti colleghi è un indirizzo IPv4.
Ora hai stabilito se l'indirizzo risolto è IPv4 o IPv6.
A seconda del tipo di indirizzo, riduci gli intervalli
::/0
o0.0.0.0/0
a intervalli più specifici per verificare l'intervallo più ampio quando l'accesso smette di funzionare:Puoi iniziare con la subnet mask ampia (ad esempio
192.0.2.0/8
) che include l'indirizzo che ritieni essere il tuo indirizzo IP.Per determinare il tuo indirizzo IP, puoi utilizzare un servizio di terze parti che fornisce il tuo indirizzo IP esterno quando visiti la sua pagina. Puoi trovare questi servizi utilizzando la query di ricerca "Qual è il mio indirizzo IP?".
I valori di configurazione non vengono visualizzati nella pagina di configurazione
Alcuni parametri di configurazione di Airflow sono nascosti nella pagina di configurazione per impedire l'accesso a informazioni potenzialmente sensibili. Ad esempio, le credenziali per accedere al database Airflow non vengono visualizzate.
Per visualizzare i campi nascosti, sostituisci la seguente opzione di configurazione di Airflow. Ti consigliamo di annullare le modifiche dopo aver ottenuto i valori richiesti.
Sezione | Chiave | Valore | Note |
---|---|---|---|
webserver
|
expose_config
|
True
|
Il valore predefinito è non-sensitive-only . Imposta su False per nascondere tutti i parametri di configurazione. |
Il DAG arresta in modo anomalo il server web Airflow o ne causa il ritorno di un errore "502 Gateway Timeout"
Gli errori del server web possono verificarsi per diversi motivi. Controlla i log di airflow-webserver in Cloud Logging per determinare la causa dell'errore 502 gateway timeout
.
Calcolo con carico elevato
Questa sezione si applica solo a Cloud Composer 1.
A differenza dei nodi worker e di pianificazione, i cui tipi di macchine possono essere personalizzati per avere una maggiore capacità di CPU e memoria, il server web utilizza un tipo di macchina fisso, che può causare errori di analisi del DAG se il calcolo in fase di analisi è troppo elevato.
Tieni presente che il server web ha 2 vCPU e 2 GB di memoria.
Il valore predefinito per core-dagbag_import_timeout
è 30 secondi. Questo valore di timeout definisce il limite massimo di tempo impiegato da Airflow per caricare un modulo Python nella cartella /dags
.
Autorizzazioni errate
Questa sezione si applica solo a Cloud Composer 1.
Il server web non viene eseguito con lo stesso account di servizio dei worker e dello schedulatore. Di conseguenza, i worker e lo scheduler potrebbero essere in grado di accedere alle risorse gestite dall'utente a cui il server web non può accedere.
Ti consigliamo di evitare di accedere a risorse non pubbliche durante la parsing del DAG. A volte, questo è inevitabile e dovrai concedere le autorizzazioni all'account di servizio del server web. Il nome dell'account di servizio viene ricavato dal dominio del server web. Ad esempio, se il dominio è example-tp.appspot.com
, l'account di servizio è example-tp@appspot.gserviceaccount.com
.
Errori DAG
Questa sezione si applica solo a Cloud Composer 1.
Il server web viene eseguito su App Engine ed è separato dal cluster GKE del tuo ambiente. Il server web analizza i file di definizione del DAG e può verificarsi un 502 gateway timeout
se sono presenti errori nel DAG. Airflow funziona normalmente senza un server web funzionale se il DAG problematico non interrompe i processi in esecuzione in GKE.
In questo caso, puoi utilizzare gcloud composer environments run
per recuperare dettagli dal tuo ambiente e come soluzione alternativa se il server web diventa non disponibile.
In altri casi, puoi eseguire l'analisi del DAG in GKE e cercare DAG che generano eccezioni Python fatali o che hanno esaurito il tempo di attesa (30 secondi per impostazione predefinita). Per risolvere il problema, connettiti a una shell remota in un contenitore di worker Airflow e controlla se sono presenti errori di sintassi. Per ulteriori informazioni, consulta la sezione Testare i DAG.