Accedi all'interfaccia a riga di comando di Airflow

Cloud Composer 3 | Cloud Composer 2 | Cloud Composer 1

Apache Airflow ha un'interfaccia a riga di comando (CLI) che puoi utilizzare per eseguire attività come l'attivazione e la gestione di DAG, l'ottenimento di informazioni sulle esecuzioni di DAG e sulle attività, l'aggiunta ed eliminazione di connessioni e utenti.

Comandi dell'interfaccia a riga di comando Airflow supportati

Airflow utilizza la sintassi della CLI di Airflow, descritta nella documentazione di Airflow.

Cloud Composer 3 supporta i seguenti comandi della CLI di Airflow:

  • (Airflow 2 e 3) Il comando gcloud composer environments run esegue i comandi dell'interfaccia a riga di comando Airflow per il tuo ambiente. Alcuni comandi sono bloccati e non è possibile eseguirli. Consulta la documentazione di riferimento del comando per l'elenco dei comandi dell'interfaccia a riga di comando di Airflow supportati.

  • (Airflow 3) Lo strumento a riga di comando airflowctl supporta un sottoinsieme di comandi della CLI Airflow e li esegue utilizzando l'API REST Airflow. Tutti i comandi disponibili in airflowctl sono supportati in Cloud Composer. Assicurati che l'account Airflow dell'utente disponga di un ruolo Airflow che possa eseguire un comando specifico.

Prima di iniziare

Per eseguire i comandi dell'interfaccia a riga di comando Airflow tramite Google Cloud CLI:

  • Il tuo Account Google deve disporre delle autorizzazioni per utilizzare Google Cloud CLI con Cloud Composer ed eseguire i comandi dell'interfaccia a riga di comando di Airflow.

  • I comandi dell'interfaccia a riga di comando Airflow eseguiti tramite Google Cloud CLI consumano la environments.executeAirflowCommand quota.

Per eseguire i comandi dell'interfaccia a riga di comando di Airflow tramite lo strumento a riga di comando airflowctl (in Airflow 3):

Esegui i comandi dell'interfaccia a riga di comando Airflow con gcloud CLI

Per eseguire i comandi dell'interfaccia a riga di comando di Airflow nei tuoi ambienti, utilizza gcloud CLI:

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION \
    SUBCOMMAND \
    -- SUBCOMMAND_ARGUMENTS

Sostituisci quanto segue:

Separatore degli argomenti dei sottocomandi

Separa gli argomenti per il comando CLI di Airflow specificato con --:

  • Specifica i comandi CLI composti come sottocomando.
  • Specifica gli argomenti per i comandi composti come argomenti dei sottocomandi, dopo un separatore --.

Esempio:

gcloud composer environments run example-environment \
    dags list -- --output=json

Località predefinita

La maggior parte dei comandi gcloud composer richiede una posizione. Puoi specificare la posizione con il flag --location o impostando la posizione predefinita.

Ad esempio, per attivare un DAG denominato sample_quickstart con l'ID 5077 nel tuo ambiente Cloud Composer:

gcloud composer environments run example-environment \
    --location us-central1 dags trigger -- sample_quickstart \
    --run-id=5077

Esegui i comandi dell'interfaccia a riga di comando di Airflow con airflowctl

Lo strumento a riga di comando airflowctl è un'utilità a riga di comando fornita da Airflow per l'esecuzione dei comandi dell'interfaccia a riga di comando di Airflow. Supporta un sottoinsieme di comandi della CLI di Airflow e li esegue utilizzando l'API REST di Airflow. Tutti i comandi disponibili in airflowctl sono supportati in Cloud Composer.

L'autorizzazione e l'autenticazione con airflowctl in Cloud Composer funzionano nel seguente modo:

  • Poiché airflowctl utilizza l'API REST di Airflow, assicurati che l'account utente Airflow associato al tuo Account Google o al account di servizio disponga di un ruolo Airflow con autorizzazioni sufficienti per eseguire un comando. Ad esempio, alcuni comandi possono essere eseguiti solo dagli utenti Airflow che dispongono del ruolo Admin.

  • Il token API utilizzato da airflowctl viene fornito con il comando gcloud auth. Per impostazione predefinita, il token ha un periodo di scadenza di 1 ora. Puoi modificarlo con l'argomento --lifetime fornito a questo comando.

Per autenticarti con airflowctl, esegui questo comando:

airflowctl auth login \
  --api-url WEB_SERVER_URL \
  --api-token $(gcloud auth print-access-token)

Sostituisci quanto segue:

Esempio:

airflowctl auth login \
  --api-url https://example-dot-us-central1.composer.googleusercontent.com \
  --api-token $(gcloud auth print-access-token)

Dopo l'autenticazione con airflowctl, puoi eseguire i comandi dell'interfaccia a riga di comando di Airflow:

airflowctl dags list

Eseguire i comandi della CLI Airflow tramite l'API Cloud Composer

In Cloud Composer 3, puoi eseguire i comandi della CLI di 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 del tuo ambiente.
  • AIRFLOW_COMMAND: il comando Airflow CLI che vuoi eseguire, ad esempio dags.
  • AIRFLOW_SUBCOMMAND: sottocomando per il comando Airflow CLI che vuoi eseguire, ad esempio list.
  • (facoltativo) SUBCOMMAND_PARAMETER: parametri per il sottocomando. Se vuoi utilizzare più di un parametro, aggiungi altri elementi 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 di polling

Dopo aver eseguito un comando dell'interfaccia a riga di comando Airflow tramite l'API Cloud Composer, verifica se il comando è stato completato correttamente effettuando una richiesta PollAirflowCommand e ispezionando i campi in exitInfo per errori e codici di stato. Il campo output contiene le righe di log.

Per ottenere lo stato di esecuzione del comando e recuperare i log, fornisci i valori executionId, pod e podNamespace restituiti da ExecuteAirflowCommandRequest:

Esempio:

// POST https://composer.googleapis.com/v1/{environment=projects/*/locations/*/environments/*}:pollAirflowCommand
{
  "executionId": "a117da94-355d-4ad4-839e-ac39ccb0bf48",
  "pod": "airflow-webserver-66d96b858f-tn96b",
  "podNamespace": "airflow-2-10-2-build-13-226523e4",
  "nextLineNumber": 1
}

Passaggi successivi