カスタム プラグインをインストールする

このページでは、Managed Service for Apache Airflow 環境にカスタム プラグインをインストールする方法について説明します。

Apache Airflow のプラグイン マネージャーを使用して、カスタムのインハウス Apache Airflow 演算子、フック、センサー、インターフェースを作成できます。 詳細については、Airflow ドキュメントのカスタム プラグインをご覧ください。

カスタム プラグインについて

環境を作成するときに、Managed Airflow によって Cloud Storage バケットが作成され、この バケットが環境に関連付けられます。カスタム プラグインをインストールするには、環境のバケットの plugins フォルダを使用します。

始める前に

  • アカウントには、環境のバケット コンテンツの表示と変更を許可するロールが必要です。
  • ここに示されたインストール方法は、Airflow プラグインにのみ適用されます。たとえば、この方法で一般的な Python モジュールや他のライブラリをインストールすることはできません。
  • プラグインは、 Airflow プラグイン テンプレートの ガイドラインに準拠する必要があります。

  • Managed Airflow(第 3 世代)では、Airflow スケジューラと Airflow triggerer のカスタム プラグインはサポートされていません。プラグインは、環境のこれらのコンポーネントに同期されません。これには、 プラグインに依存する Airflow の機能が含まれます。たとえば、カスタム TimeTable や DAG レベルの リスナーなどです。タスクレベルのリスナーと組み込みの TimeTable はサポートされています。

プラグインをインストールする

カスタム プラグインを Managed Airflow 環境にインストールするには、プラグインのコードを環境のバケットの plugins フォルダにコピーします。

プラグインをインストールするには:

コンソール

  1. コンソール Cloud de Confiance で、[Environments] ページに移動します。

    [環境] に移動

  2. 使用中の環境を探して、[DAGs] リンクをたどります。

  3. 1 つ上のフォルダレベルに移動し、plugins/ フォルダに移動します。

  4. プラグイン ファイルをアップロードします。オブジェクトのアップロードの詳細については、オブジェクトのアップロードをご覧ください。

gcloud

次の gcloud コマンドを使用します。

gcloud composer environments storage plugins import \
    --environment ENVIRONMENT_NAME \
    --location LOCATION \
    --source PATH_TO_LOCAL_FILE \
    --destination PATH_IN_SUBFOLDER

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

  • ENVIRONMENT_NAME を環境の名前に置き換えます。
  • LOCATION は、環境が配置されているリージョン。
  • PATH_TO_LOCAL_FILE は、アップロードするファイルのパスに置き換えます。
  • (省略可)PATH_IN_SUBFOLDER は、サブフォルダのパスに置き換えます。--destination 引数を使用して、plugins フォルダ内のサブフォルダにプラグインをアップロードします。それ以外の場合は、--destination 引数を省略します。

プラグインのリストを表示する

コンソール

  1. コンソール Cloud de Confiance で、[Environments] ページに移動します。

    [環境] に移動

  2. 使用中の環境を探して、[DAGs] リンクをたどります。

  3. 1 つ上のフォルダレベルに移動し、plugins/ フォルダに移動します。

  4. プラグイン ファイルを表示します。

gcloud

次の gcloud コマンドを使用します。

gcloud composer environments storage plugins list \
    --environment ENVIRONMENT_NAME \
    --location LOCATION

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

  • ENVIRONMENT_NAME を環境の名前に置き換えます。
  • LOCATION は、環境が配置されているリージョン。

プラグインを削除する

マネージド Airflow 環境からプラグインを削除するには、環境のバケットの plugins フォルダからプラグイン コードを削除します。

プラグインを削除するには:

コンソール

  1. コンソール Cloud de Confiance で、[Environments] ページに移動します。

    [環境] に移動

  2. 使用中の環境を探して、[DAGs] リンクをたどります。

  3. 1 つ上のフォルダレベルに移動し、plugins/ フォルダに移動します。

  4. プラグイン ファイルを削除します。オブジェクトの削除の詳細については、オブジェクトの削除をご覧ください。

gcloud

次の gcloud コマンドを使用します。

gcloud composer environments storage plugins delete \
    --environment ENVIRONMENT_NAME \
    --location LOCATION \
    PLUGIN_TO_DELETE

プラグインをダウンロードする

プラグインをダウンロードするには、次のいずれかの方法を選択してください。

コンソール

  1. コンソール Cloud de Confiance で、[Environments] ページに移動します。

    [環境] に移動

  2. 使用中の環境を探して、[DAGs] リンクをたどります。

  3. 1 つ上のフォルダレベルに移動し、plugins/ フォルダに移動します。

  4. プラグイン ファイルをダウンロードします。オブジェクトの削除の詳細については、オブジェクトのダウンロードをご覧ください。

gcloud

次の gcloud コマンドを使用します。

gcloud composer environments storage plugins export \
  --environment ENVIRONMENT_NAME \
  --location LOCATION \
  --destination PATH_TO_LOCAL_DESTINATION \
  --source PATH_IN_FOLDER

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

  • ENVIRONMENT_NAME を環境の名前に置き換えます。
  • LOCATION は、環境が配置されているリージョン。
  • PATH_TO_LOCAL_DESTINATION は、ダウンロードしたファイルの送信先に置き換えます。
  • --source は、1 つのプラグインだけをダウンロードするためのオプションです。 PATH_IN_FOLDER はフォルダパスです。

ウェブサーバー プラグインを無効にする

Managed Airflow(第 3 世代)で Airflow UI に問題が発生した場合は、環境のバケットからウェブサーバー プラグインを削除せずに、ウェブサーバー プラグインを無効にできます。

gcloud

次の Google Cloud CLI 引数を使用すると、ウェブサーバー プラグインを無効または有効にできます。

  • --no-support-web-server-plugins: ウェブサーバー プラグインを無効にします
  • --support-web-server-plugins: ウェブサーバー プラグインを有効にします

ウェブサーバー プラグインを無効にするには、次の Google Cloud CLI コマンドを実行します。

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --no-support-web-server-plugins

ウェブサーバー プラグインを有効にするには、次の Google Cloud CLI コマンドを実行します。

gcloud beta composer environments update ENVIRONMENT_NAME \
  --location LOCATION \
  --support-web-server-plugins

以下を置き換えます。

  • ENVIRONMENT_NAME: 環境の名前
  • LOCATION: 環境が配置されているリージョン

API

  1. environments.patch API リクエストを作成します。

  2. このリクエストで次のように操作します。

    1. updateMask パラメータで、config.software_config.web_server_plugins_mode マスクを指定します。

    2. リクエスト本文の web_server_plugins_mode フィールドに、次を指定します。

      • ウェブサーバー プラグインを無効にするには、PLUGINS_DISABLED を指定します。
      • ウェブサーバー プラグインを有効にするには、PLUGINS_ENABLED を指定します。

例(プラグインを無効にする):

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.software_config.web_server_plugins_mode

"config": {
  "softwareConfig": {
    "web_server_plugins_mode": "PLUGINS_DISABLED"
   }
}

例(プラグインを有効にする):

// PATCH https://composer.googleapis.com/v1beta1/projects/example-project/
// locations/us-central1/environments/example-environment?updateMask=
// config.software_config.web_server_plugins_mode

"config": {
  "softwareConfig": {
    "web_server_plugins_mode": "PLUGINS_ENABLED"
   }
}

プラグインに関する問題のトラブルシューティング

プラグインによって Airflow UI で問題が発生する

削除せずにウェブサーバー プラグインを無効化できます。詳細については、ウェブサーバー プラグインを無効にするをご覧ください。

新しくアップロードされたプラグインが Airflow UI に表示されない

Airflow UI アクセス制御を使用すると、新しくアップロードされたプラグインが Airflow UI に表示されないことがあります。この問題を解決するには、新しくアップロードしたプラグインへのアクセスを構成するか、自分自身に Airflow UI で Admin ロールを割り当てるよう Airflow UI 管理者に依頼します。

次のステップ