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

Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3

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

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

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

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

始める前に

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

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

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

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

コンソール

  1. Google Cloud コンソールで [環境] ページに移動します。

    [環境] に移動

  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. Google Cloud コンソールで [環境] ページに移動します。

    [環境] に移動

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

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

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

gcloud

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

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

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

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

プラグインを削除する

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

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

コンソール

  1. Google Cloud コンソールで [環境] ページに移動します。

    [環境] に移動

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

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

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

gcloud

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

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

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

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

コンソール

  1. Google Cloud コンソールで [環境] ページに移動します。

    [環境] に移動

  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 はフォルダパスです。

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

Cloud Composer 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 管理者に依頼します。

次のステップ