ランタイム環境変数を生成するカスタムプラグインを作成します
次の例では、Amazon Managed Workflows for Apache Airflow 環境でランタイムに環境変数を生成するカスタムプラグインを作成する手順を説明します。
Version
-
このページのサンプルコードは、Python 3.7
の Apache Airflow v1 で使用できます。
前提条件
このページのサンプルコードを使用するには、以下が必要です。
アクセス許可
-
このページのコード例を使用する場合、追加のアクセス許可は必要ありません。
要件
-
このコード例を Apache Airflow v1 で使用する場合、追加の依存関係は必要ありません。このコードでは、お使いの環境にある Apache Airflow v1 のベースインストール
を使用します。
カスタムプラグイン
Apache Airflow は、起動時にプラグインフォルダにある Python ファイルの内容を実行します。これは環境変数の設定と変更に使用されます。次のステップでは、カスタムプラグインのサンプルコードを説明します。
-
コマンドプロンプトで、プラグインが保存されているディレクトリに移動します。例:
cd plugins
-
以下のコードサンプルの内容をコピーし、ローカルに
env_var_plugin.py
として保存する。としてローカルに保存します。from airflow.plugins_manager import AirflowPlugin import os os.environ["PATH"] = os.getenv("PATH") + ":/usr/local/airflow/.local/lib/python3.7/site-packages" os.environ["JAVA_HOME"]="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.272.b10-1.amzn2.0.1.x86_64" class EnvVarPlugin(AirflowPlugin): name = 'env_var_plugin'
Plugins.zip
以下のステップは、plugins.zip
を作成する方法を示しています。この例の内容は、他のプラグインやバイナリと組み合わせて 1 つの plugins.zip
のファイルにすることができます。
-
コマンドプロンプトで、前のステップの
hive_plugin
ディレクトリに移動します。例:cd plugins
-
plugins
フォルダ内のコンテンツを圧縮します。zip -r ../plugins.zip ./
Airflow 設定オプション
Apache Airflow v2 を使用している場合、core.lazy_load_plugins : False
を Apache Airflow の構成オプションとして追加してください。詳細については、「2 の設定オプションによるプラグインの読み込み」を参照してください。
次のステップ
-
この例の
requirements.txt
ファイルを Amazon S3 バケットにアップロードする方法について詳しくは、Python 依存関係のインストール をご覧ください。 -
この例の DAG コードを Amazon S3 バケットの
dags
フォルダにアップロードする方法については、DAG の追加と更新 を参照してください。 -
この例の
plugins.zip
ファイルを Amazon S3 バケットにアップロードする方法について詳しくは、カスタムプラグインのインストール をご覧ください。