Airflow コマンドライン インターフェースにアクセスする

Cloud Composer 1 | Cloud Composer 2

Apache Airflow には、DAG のトリガーと管理、DAG 実行とタスクに関する情報の取得、接続とユーザーの追加と削除など、タスクの実行に使用できるコマンドライン インターフェース(CLI)があります。

CLI 構文のバージョンについて

Cloud Composer 1 の Airflow では、CLI コマンドに 2 つの異なる構文が用意されています。

始める前に

Cloud Composer で gcloud コマンドライン ツールを使用するための十分な権限が必要です。詳細については、アクセス制御をご覧ください。

Airflow CLI コマンドを実行

Airflow CLI コマンドをお使いの環境で実行するには、gcloud を使用します。

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

以下のように置き換えます。

  • ENVIRONMENT_NAME を環境の名前にする。
  • LOCATION は、環境が配置されているリージョン。
  • SUBCOMMAND を、サポートされている Airflow CLI コマンドのいずれかに置き換えます。
  • SUBCOMMAND_ARGUMENTS は、Airflow CLI コマンドの引数に置き換えます。

サブコマンド引数の区切り文字

-- で、指定された Airflow CLI コマンドの引数を区切ります。

Airflow 2

Airflow 2 CLI の構文:

  • 複合 CLI コマンドをサブコマンドとして指定します。 
  • 複合コマンドの引数は、-- 区切り文字の後にサブコマンド引数として指定します。
gcloud composer environments run example-environment \
    dags list -- --output=json

Airflow 1

Airflow 1.10 CLI の構文:

  • CLI コマンドをサブコマンドとして指定します。 
  • 引数は -- 区切り文字の後に指定します。
gcloud composer environments run example-environment \
    list_dags -- --report

デフォルトのロケーション

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

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

Airflow 2

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

Airflow 1

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

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

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

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

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

  1. Cloud Composer 環境を実行する GKE クラスタの名前を探します。

    gcloud composer environments describe \
        ENVIRONMENT_NAME \
        --location LOCATION \
        --format="value(config.gkeCluster)"
    

    以下のように置き換えます。

    • ENVIRONMENT_NAME を環境の名前にする。
    • LOCATION は、環境が配置されているリージョン。
  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,EXTERNAL_IP/32
    

    次のように置き換えます。

    • EXISTING_AUTH_NETS は、既存のコントロール プレーン承認済みネットワークのリストに置き換えます。次のコマンドを実行して、承認済みネットワークを確認できます。

      gcloud container clusters describe GKE_CLUSTER \
          --format "flattened(masterAuthorizedNetworksConfig.cidrBlocks[])"
      
    • EXTERNAL_IP は、Cloud Shell の外部 IP アドレスか、Airflow CLI コマンドを実行するマシンのパブリック IP に置き換えます。

  4. プライベート IP 環境で Airflow CLI コマンドを実行します。

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

サポートされている Airflow コマンドの完全な一覧については、gcloud composer environments run リファレンスをご覧ください。