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
フォルダにコピーします。
プラグインをインストールするには:
コンソール
Google Cloud Console で [環境] ページに移動します。
使用中の環境を探して、[DAGs] リンクをたどります。
1 つ上のフォルダレベルに移動し、
plugins/
フォルダに移動します。プラグイン ファイルをアップロードします。オブジェクトのアップロードの詳細については、オブジェクトのアップロードをご覧ください。
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
引数を省略します。
プラグインのリストを表示する
コンソール
Google Cloud Console で [環境] ページに移動します。
使用中の環境を探して、[DAGs] リンクをたどります。
1 つ上のフォルダレベルに移動し、
plugins/
フォルダに移動します。プラグイン ファイルを表示します。
gcloud
次の gcloud
コマンドを使用します。
gcloud composer environments storage plugins list \
--environment ENVIRONMENT_NAME \
--location LOCATION
以下のように置き換えます。
ENVIRONMENT_NAME
を環境の名前にする。LOCATION
は、環境が配置されているリージョン。
プラグインを削除する
Cloud Composer 環境からプラグインを削除するには、環境のバケット内の plugins
フォルダからプラグイン コードを削除します。
プラグインを削除するには:
コンソール
gcloud
次の gcloud
コマンドを使用します。
gcloud composer environments storage plugins delete \
--environment ENVIRONMENT_NAME \
--location LOCATION \
PLUGIN_TO_DELETE
プラグインをダウンロードする
プラグインをダウンロードするには、次のいずれかの方法を選択してください。
コンソール
Google Cloud Console で [環境] ページに移動します。
使用中の環境を探して、[DAGs] リンクをたどります。
1 つ上のフォルダレベルに移動し、
plugins/
フォルダに移動します。プラグイン ファイルをダウンロードします。オブジェクトの削除の詳細については、オブジェクトのダウンロードをご覧ください。
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
environments.patch
API リクエストを作成します。このリクエストで次のように操作します。
updateMask
パラメータで、config.software_config.web_server_plugins_mode
マスクを指定します。リクエスト本文の
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 管理者に依頼します。