Airflow コマンドライン インターフェース

Apache Airflow には、Airflow 環境を管理するために使用できるコマンドライン インターフェース(CLI)が含まれています。CLI は、ワークフローの管理、Airflow 環境の変更、ログ情報の取得などのタスクに役立ちます。

Cloud Composer では、Google Cloud SDK で Airflow CLI コマンドが簡素化されています。 インストールの完了後は、gcloud コマンドライン ツールを使用して gcloud composer environments run コマンドを実行し、Airflow CLI サブコマンドを実行できます。

始める前に

Cloud Composer 環境で gcloud コマンドライン ツール(Airflow CLI)にアクセスするには、次の権限が必要です。

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

詳細については、Cloud Composer のアクセス制御をご覧ください。

Airflow CLI コマンドの実行

次のコマンドを使用して、Cloud Composer 環境で Airflow CLI コマンドを実行できます。

gcloud composer environments run ENVIRONMENT_NAME \
    --location LOCATION SUBCOMMAND

大部分の gcloud composer コマンドでは、ロケーションを指定する必要があります。--location フラグを使用するかデフォルトのロケーションを設定することでロケーションを指定できます。

たとえば、Cloud Composer 環境で ID 5077 を指定し、sample_quickstart という名前の DAG をトリガーするには、次のようにします。

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

たとえば、test/ ディレクトリ内の DAG の構文エラーを確認するには、次のようにします。

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

プライベート IP 環境でのコマンドの実行

プライベート IP 環境で Airflow CLI コマンドを実行するには、GKE クラスタのマスター エンドポイントにアクセスできるマシンで実行する必要があります。使用可能なオプションは、プライベート クラスタの構成によって異なる場合があります。

パブリック エンドポイント アクセスがクラスタで無効になっている場合は、同じ VPC ネットワーク内の VM から Airflow コマンドを実行する必要があります。VPC ネットワークで VM を作成して、このパスを有効にします。

パブリック エンドポイント アクセスとマスター認証済みネットワークが有効になっている場合は、マスター認証済みネットワークに追加されたパブリック IP アドレスを持つマシンから Airflow コマンドを実行することもできます。マシンからのアクセスを有効にするには、GKE クラスタの構成を調整します。

  1. 次のコマンドを使用して、Composer 環境を実行する GKE クラスタの名前を探します。

    gcloud beta composer environments describe ENVIRONMENT_NAME \
        --location LOCATION \
        --format="value(config.gkeCluster)"
    
  2. ご使用の環境で Airflow CLI コマンドを実行するマシンのパブリック IP を探します。Cloud Shell を使用している場合は、dig を使用して、Cloud Shell の外部 IP アドレスを探します。

    dig +short myip.opendns.com @resolver1.opendns.com
    
  3. マシンの外部アドレスを、クラスタのマスター承認済みネットワークのリストに追加します。

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

    ここで

    • EXISTING_AUTH_NETS は、既存のマスター承認済みネットワークのリストです。次のコマンドを実行して、マスター承認済みネットワークを確認できます。

      gcloud container clusters describe GKE_CLUSTER \
          --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
      
    • SHELL_IP は、Cloud Shell の外部 IP アドレスです。

これで、プライベート IP 環境で Airflow CLI コマンドを実行できるようになっています。

サポートされている Airflow コマンド

Cloud Composer は、Airflow 1.9.0 以降を実行する環境で以下のコマンドをサポートしています。

  • 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 では、次のコマンドのサポートが追加されています。

  • delete_dag

Airflow 1.10.2 では、次のコマンドのサポートが追加されています。

  • list_dag_runs
  • next_execution