Interface de linha de comando do Airflow

O Apache Airflow inclui uma interface de linha de comando (CLI, na sigla em inglês) [página em inglês] que pode ser usada para gerenciar os ambientes do Airflow. A CLI é útil para realizar tarefas como o gerenciamento de fluxos de trabalho, a alteração do ambiente do Airflow e a coleta de informações de registro.

O Cloud Composer simplifica os comandos da CLI do Airflow com o SDK do Google Cloud. Depois de instalada, é possível usar a ferramenta de linha de comando gcloud para executar o comando gcloud composer environments run a fim de executar os subcomandos da CLI do Airflow (em inglês).

Antes de começar

As seguintes permissões são necessárias para acessar a ferramenta de linha de comando gcloud (CLI do Airflow) no ambiente do Cloud Composer:

  • composer.environments.get
  • container.clusters.get
  • container.clusters.list
  • container.clusters.getCredentials

Para mais informações, consulte Controle de acesso do Cloud Composer.

Como executar comandos da CLI do Airflow

Para executar comandos da CLI do Airflow em um ambiente do Cloud Composer, use o seguinte:

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION SUBCOMMAND

A maioria dos comandos gcloud composer requer um local. É possível especificar o local usando a sinalização --location ou definindo o local padrão.

Por exemplo, para acionar um DAG chamado sample_quickstart com o ID 5077 no seu ambiente do Cloud Composer:

gcloud composer environments run test-environment \
    --location us-central1 trigger_dag -- sample_quickstart \
    --run_id=5077

Por exemplo, para verificar erros de sintaxe em DAGs em um diretório test/:

gcloud composer environments run test-environment \
     --location us-central1 \
     list_dags -- -sd /home/airflow/gcs/data/test

Como executar comandos em um ambiente de IP particular

Para executar comandos da CLI do Airflow em um ambiente de IP particular, você precisa executá-los em uma máquina que possa acessar o endpoint do mestre do cluster do GKE. Suas opções podem variar dependendo da configuração de cluster particular.

Se o acesso ao endpoint público estiver desativado no cluster, execute comandos do Airflow de uma VM na mesma rede VPC. Crie uma VM na sua rede VPC para ativar esse caminho.

Se o acesso ao endpoint público e as redes autorizadas do mestre estiverem ativadas, também será possível executar comandos do Airflow em uma máquina com endereço IP público adicionado às redes autorizadas do mestre. Para ativar o acesso pela sua máquina, ajuste a configuração do cluster do GKE:

  1. Encontre o nome do cluster do GKE que executa o ambiente do Composer usando este comando:

    gcloud beta composer environments describe ENVIRONMENT_NAME \
        --location LOCATION \
        --format="value(config.gkeCluster)"
    
  2. Encontre o IP público da máquina em que você quer executar comandos da CLI do Airflow no ambiente. Se você estiver usando o Cloud Shell, use dig para encontrar o endereço IP externo do Cloud Shell:

    dig +short myip.opendns.com @resolver1.opendns.com
    
  3. Adicione o endereço externo da máquina à lista de redes autorizadas do mestre do cluster:

    gcloud container clusters update GKE_CLUSTER \
        --enable-master-authorized-networks \
        --master-authorized-networks EXISTING_AUTH_NETS,SHELL_IP/32
    

    Onde:

    • EXISTING_AUTH_NETS é a lista atual de redes mestres autorizadas; Encontre as redes autorizadas do mestre executando este comando:

      gcloud container clusters describe GKE_CLUSTER \
          --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
      
    • SHELL_IP é o endereço IP externo do seu Cloud Shell.

Agora você conseguirá executar comandos da CLI do Airflow no ambiente de IP particular.

Comandos do Airflow compatíveis

O Cloud Composer é compatível com os seguintes comandos para ambientes que executam o Airflow 1.9.0 ou posterior:

  • backfill
  • clear
  • connections
  • dag_state
  • kerberos
  • list_dags
  • list_tasks
  • pause
  • pool
  • render
  • run
  • task_failed_deps
  • task_state
  • test
  • trigger_dag
  • unpause
  • variables
  • version

Airflow 1.10.1 inclui suporte para o seguinte comando:

  • delete_dag

Airflow 1.10.2 inclui suporte para os seguintes comandos:

  • list_dag_runs
  • next_execution