Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1
Apache Airflow include un'interfaccia utente web chiamata Airflow UI, che puoi utilizzare per gestire i DAG di Airflow, visualizzare i log di esecuzione dei DAG, monitorare Airflow ed eseguire azioni amministrative.
Informazioni sul server web Airflow
Ogni ambiente Cloud Composer ha un server web che esegue l'interfaccia utente di Airflow. Il server web fa parte dell'architettura dell'ambiente Cloud Composer.
Prima di iniziare
Devi disporre di un ruolo che consenta di visualizzare gli ambienti Cloud Composer. Per ulteriori informazioni, consulta Controllo dell'accesso.
Durante la creazione dell'ambiente, Cloud Composer configura l'URL per il server web che esegue l'interfaccia utente di Airflow. L'URL non è personalizzabile.
Cloud Composer 2 supporta la funzionalità Controllo dell'accesso all'interfaccia utente di Airflow (Controllo dell'accesso basato sui ruoli di Airflow) per l'interfaccia utente di Airflow.
Se l'opzione Controlli API > App di terze parti non configurate > Non consentire agli utenti di accedere alle app di terze parti è attivata in Google Workspace e l'app Apache Airflow in Cloud Composer non è consentita esplicitamente, gli utenti non possono accedere all'interfaccia utente di Airflow, a meno che non consentano esplicitamente l'applicazione. Per consentire l'accesso, svolgi i passaggi descritti in Consentire l'accesso all'interfaccia utente di Airflow in Google Workspace.
Se le associazioni di accesso sensibile al contesto di Chrome Enterprise Premium vengono utilizzate con livelli di accesso basati sugli attributi del dispositivo e l'app Apache Airflow in Cloud Composer non è esente, non è possibile accedere all'interfaccia utente di Airflow a causa di un ciclo di accesso. Per consentire l'accesso, segui i passaggi descritti in Consentire l'accesso all'interfaccia utente di Airflow nelle associazioni di Accesso sensibile al contesto.
Se le regole di ingresso sono configurate in un perimetro di Controlli di servizio VPC che protegge il progetto e la regola di ingresso che consente l'accesso al servizio Cloud Composer utilizza il tipo di identità
ANY_SERVICE_ACCOUNT
oANY_USER_ACCOUNT
, gli utenti non possono accedere all'interfaccia utente di Airflow e si ritrovano in un ciclo di accesso. Per ulteriori informazioni su come gestire questo scenario, consulta Consentire l'accesso all'interfaccia utente di Airflow nelle regole di ingresso dei Controlli di servizio VPC.
Accedere all'interfaccia utente di Airflow
In Cloud Composer 2, il server web di Airflow viene eseguito
come carico di lavoro nel cluster del tuo ambiente. Il server web viene eseguito nel dominio composer.googleusercontent.com
e fornisce accesso all'interfaccia utente di Airflow.
Cloud Composer 2 fornisce l'accesso all'interfaccia in base alle identità utente e alle associazioni dei 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.
Accedere all'interfaccia utente di Airflow dalla console Google Cloud
Per accedere all'interfaccia utente di Airflow dalla console Google Cloud:
Nella console Google Cloud, vai alla pagina Ambienti.
Nella colonna Server web Airflow, segui il link Airflow per il tuo ambiente.
Accedi con un Account Google che disponga delle autorizzazioni appropriate.
Ottenere l'URL dell'interfaccia utente di Airflow con Google Cloud CLI
Puoi accedere all'interfaccia utente di Airflow da qualsiasi browser web. Per ottenere l'URL per l'interfaccia utente di Airflow, esegui il seguente comando in Google Cloud CLI:
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome del tuo ambiente.LOCATION
: la regione in cui si trova l'ambiente.
Il comando Google Cloud CLI mostra le proprietà di un ambiente Cloud Composer, inclusi gli URL per l'interfaccia utente di Airflow.
Gli URL sono elencati come airflowUri
e airflowByoidUri
:
- L'indirizzo URL
airflowUri
viene utilizzato dagli Account Google. - L'indirizzo URL
airflowByoidUri
viene utilizzato dalle identità esterne se configuri la federazione delle identità per la forza lavoro nel tuo progetto.
config:
airflowUri: https://example-dot-us-central1.composer.googleusercontent.com
airflowByoidUri: https://example-dot-us-central1.composer.byoid.googleusercontent.com
Riavvia il 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 web
server utilizzando l'API restartWebServer
o il comando restart-web-server
in Google Cloud CLI:
gcloud beta composer environments restart-web-server ENVIRONMENT_NAME \
--location=LOCATION
Sostituisci quanto segue:
ENVIRONMENT_NAME
: il nome del tuo ambiente.LOCATION
: la regione in cui si trova l'ambiente.
Configurare l'accesso di rete al server web
I parametri di accesso del server web di Airflow non dipendono dalla configurazione di rete del tuo ambiente. Devi invece configurare l'accesso al server web separatamente. Ad esempio, un ambiente IP privato può comunque avere l'interfaccia utente di Airflow accessibile da internet.
Non è possibile configurare gli intervalli IP consentiti come indirizzi IP privati.
Console
Nella console Google Cloud, vai alla pagina Ambienti.
Nell'elenco degli ambienti, fai clic sul nome dell'ambiente. Viene visualizzata la pagina Dettagli dell'ambiente.
Vai alla scheda Configurazione dell'ambiente.
Nella sezione Configurazione di rete, individua l'elemento Controllo accesso server web e fai clic su Modifica.
Nella finestra di dialogo Controllo dell'accesso di rete al 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 in notazione CIDR. Nel campo Descrizione, specifica una descrizione facoltativa per questo 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 vuota.
gcloud
Quando aggiorni un ambiente, i seguenti argomenti controllano i parametri di accesso al server web:
--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 intervalli IP di origine specifici. Per specificare più 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 del tuo 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="example range" \
--web-server-allow-ip ip_range=192.0.4.0/24,description="example range 2"
API
Crea una richiesta API [
environments.patch
][api-patch].In questa richiesta:
Nel parametro
updateMask
, specifica la mascheraconfig.webServerNetworkAccessControl
.Nel corpo della richiesta, specifica come devono essere salvati i log delle attività di Airflow:
Per fornire l'accesso ad Airflow da tutti gli indirizzi IP, specifica un elemento
config
vuoto (l'elementowebServerNetworkAccessControl
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'elementowebServerNetworkAccessControl
deve essere presente, ma non deve contenere un elementoallowedIpRanges
.
{
"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": "example range"
},
{
"value": "192.0.4.0/24",
"description": "example range 2"
}
]
}
}
}
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 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:
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"
}
}
}
Passaggi successivi
- Controllo dell'accesso all'interfaccia utente di Airflow
- Risolvere i problemi del server web Airflow