Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
Apache Airflow dispone di un'interfaccia a riga di comando (CLI) che puoi utilizzare per eseguire attività come l'attivazione e la gestione dei DAG, l'ottenimento di informazioni sulle esecuzioni e sulle attività dei DAG, l'aggiunta ed eliminazione di connessioni e utenti.
Informazioni sulle versioni della sintassi della CLI
Airflow in Cloud Composer 2 utilizza la sintassi dell'interfaccia a riga di comando di Airflow 2
Comandi dell'interfaccia a riga di comando Airflow supportati
Per un elenco completo dei comandi dell'interfaccia a riga di comando di Airflow supportati, consulta la documentazione di riferimento di gcloud composer environments run
.
Prima di iniziare
Devi disporre di autorizzazioni sufficienti per utilizzare la riga di comando
gcloud
con Cloud Composer ed eseguire i comandi dell'interfaccia a riga di comando di Airflow. Per maggiori informazioni informazioni, consulta la sezione Controllo dell'accesso.Nelle versioni di Cloud Composer precedenti alla 2.4.0, è necessario l'accesso al piano di controllo del cluster dell'ambiente per eseguire i comandi dell'interfaccia a riga di comando di Airflow.
Esegui i comandi dell'interfaccia a riga di comando Airflow
Per eseguire i comandi dell'interfaccia a riga di comando di Airflow nei tuoi ambienti, utilizza gcloud
:
gcloud composer environments run ENVIRONMENT_NAME \
--location LOCATION \
SUBCOMMAND \
-- SUBCOMMAND_ARGUMENTS
Sostituisci:
ENVIRONMENT_NAME
con il nome dell'ambiente.LOCATION
con la regione in cui si trova l'ambiente.SUBCOMMAND
con uno dei comandi dell'interfaccia a riga di comando di Airflow supportati.SUBCOMMAND_ARGUMENTS
con gli argomenti per il comando Airflow CLI.
Separatore degli argomenti dei sottocomandi
Separa gli argomenti per il comando dell'interfaccia a riga di comando di Airflow specificato con --
:
Airflow 2
Per la sintassi dell'interfaccia a riga di comando Airflow 2:
- Specifica i comandi dell'interfaccia a riga di comando composti come sottocomando.
- Specifica eventuali argomenti per i comandi composti come argomenti del sottocomando,
dopo un separatore
--
.
gcloud composer environments run example-environment \
dags list -- --output=json
Airflow 1
Cloud Composer 2 supporta solo Airflow 2.
Località predefinita
La maggior parte dei comandi gcloud composer
richiede una posizione. Puoi specificare
località con il flag --location
o per
impostare la località predefinita.
Esempio
Ad esempio, per attivare un DAG denominato sample_quickstart
con l'ID 5077
nel
tuo ambiente Cloud Composer:
Airflow 2
gcloud composer environments run example-environment \
--location us-central1 dags trigger -- sample_quickstart \
--run-id=5077
Flusso d'aria 1
Cloud Composer 2 supporta solo Airflow 2.
Eseguire comandi in un ambiente IP privato
A partire dalla versione 2.4.0 di Cloud Composer, puoi eseguire i comandi CLI di Airflow su un ambiente IP privato senza configurazione aggiuntiva. Il tuo di una macchina virtuale non ha bisogno di accedere al piano di controllo del cluster dell'ambiente endpoint per eseguire questi comandi.
Nelle versioni di Cloud Composer precedenti alla 2.4.0:
Per eseguire i comandi dell'interfaccia a riga di comando di Airflow in un ambiente IP privato, su una macchina in grado di accedere dall'endpoint del piano di controllo. Le opzioni possono variare a seconda della configurazione del cluster privato.
Se l'accesso all'endpoint pubblico è disattivato nel cluster del tuo ambiente,
non è possibile utilizzare i comandi gcloud composer
per eseguire Airflow CLI.
Per poter eseguire i comandi dell'interfaccia a riga di comando di Airflow, svolgi i seguenti passaggi:
- Crea una VM nella tua rete VPC
- Acquisisci le credenziali del cluster. Esegui questo comando:
bash gcloud container clusters get-credentials CLUSTER_NAME \ --region REGION \ --project PROJECT \ --internal-ip
- Utilizza
kubectl
per eseguire il comando Airflow. Ad esempio:
kubectl exec deployment/airflow-scheduler -n COMPOSER_NAMESPACE \
--container airflow-scheduler -- airflow dags list
Sostituisci COMPOSER_NAMESPACE
con uno spazio dei nomi simile a:
composer-2-0-28-airflow-2-3-394zxc12411
. Puoi trovare Cloud Composer
nell'elenco dei carichi di lavoro o utilizzando il comando kubectl get namespaces
.
Se l'accesso all'endpoint pubblico è abilitato nel cluster del tuo ambiente, puoi anche eseguire i comandi della CLI di Airflow da una macchina con un indirizzo IP esterno aggiunto alle reti autorizzate. Per abilitare l'accesso dal tuo computer, aggiungi il token dalla macchina all'indirizzo esterno della macchina elenco di reti autorizzate.
Esegui i comandi dell'interfaccia a riga di comando Airflow tramite l'API Cloud Composer
A partire dalla versione 2.4.0 di Cloud Composer, puoi eseguire i comandi della CLI Airflow tramite l'API Cloud Composer.
Esegui un comando
Crea una richiesta API environments.executeAirflowCommand
:
{
"environment": "projects/PROJECT_ID/locations/LOCATION/environments/ENVIRONMENT_NAME",
"command": "AIRFLOW_COMMAND",
"subcommand": "AIRFLOW_SUBCOMMAND",
"parameters": [
"SUBCOMMAND_PARAMETER"
]
}
Sostituisci quanto segue:
PROJECT_ID
: l'ID progetto.LOCATION
: la regione in cui si trova l'ambiente.ENVIRONMENT_NAME
: il nome dell'ambiente.AIRFLOW_COMMAND
: il comando dell'interfaccia a riga di comando di Airflow che vuoi eseguire, comedags
.AIRFLOW_SUBCOMMAND
: sottocomando del comando dell'interfaccia a riga di comando di Airflow che vuoi eseguire, ad esempiolist
.- (Facoltativo)
SUBCOMMAND_PARAMETER
: parametri per il sottocomando. Se Se vuoi utilizzare più di un parametro, aggiungi più voci all'elenco.
Esempio:
// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:executeAirflowCommand
{
"environment": "projects/example-project/locations/us-central1/environments/example-environment",
"command": "dags",
"subcommand": "list",
"parameters": [
"-o json",
"--verbose"
]
}
Stato del comando del sondaggio
Dopo aver eseguito un comando dell'interfaccia a riga di comando Airflow tramite l'API Cloud Composer, controlla se
il comando sia stato completato correttamente
PollAirflowCommand e ispezionare
in exitInfo
per gli errori e i codici di stato. Il campo output
contiene linee di log.
Per ottenere lo stato di esecuzione del comando e recuperare i log, fornisci executionId
,
Valori pod
e podNamespace
restituiti da ExecuteAirflowCommandRequest
:
Esempio:
// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:pollAirflowCommand
{
"executionId": "39b82312-3a19-4d21-abac-7f8f19855ce7",
"pod": "airflow-scheduler-1327d8cd68-hblpd",
"podNamespace": "composer-2-4-0-airflow-2-5-3-184dadaf",
"nextLineNumber": 1
}
Risoluzione dei problemi
Nessuna connettività al piano di controllo del cluster
Con gcloud composer environments run
in esecuzione
o kubectl
, potresti riscontrare il seguente errore:
Get "https://<IP Address>/api?timeout=32s": dial tcp <IP Address>:443: i/o timeout"
Sintomo: questo messaggio di errore indica che non è presente alcuna connettività di rete da un computer su cui esegui questi comandi.
Soluzione: segui le linee guida presentate in
Esecuzione di comandi su un ambiente IP privato
o segui le istruzioni disponibili nella
Sezione Timeout del comando kubectl
.