Airflow 1系で設定されている環境変数を JSON ファイルとしてGUIを使って書き出す方法
CloudComposer(GCP の Airflow のマネージドサービス)で運用している Airflow 1 系上で設定されている環境変数を JSON ファイルとして書き出したかったが、つまずいたのでメモを公開しておく。
Airflow の運用の理想としては、リポジトリをベースに CI 経由で CloudComposer を構築していくのがベスト。 だが、Airflow では GUI でお手軽に環境変数(Airflow では Variables という概念1)が設定でき、便利な半面、デメリットとしてリポジトリをベースにした Single Source of Truth の状態が保てなくなってしまう。
Airflow の環境変数を JSON ファイルとして書き出す方法
- 上部の Admin メニューから、
Variables
をクリックしてページに移動 With selected
ボタンをクリックするとExport
ボタンがドロップダウンリスト内にでてくるので、これをクリックすれば Airflow に保存されている環境変数を JSON ファイルとして書き出せる- Export できるとは初見でわからなかったのでこの UI を考えた人は罪深い。@naoさんに教えていただけて感謝!
Airflow CLI からでも環境変数を JSON ファイルとして出力できるらしい2が、手元から
gcloud composer environments run COMPOSER_NAME --location asia-northeast1 variables -- --export env.json
を実行してもローカルには保存されなかったので、実行結果は CloudComposer 内部のインスタンスに保存されている模様。
Bash と GCS のオペレーターを組み合わせれば JSON ファイルを GCS に保存はできそうだが、それもめんどくさそうではある。 直接 SSH で CloudComposer のインスタンスにつなげたほうがまだ楽そうですよね
まとめ
Airflow の GUI で環境変数を設定するのは便利だけど、Single Souce of Truth ではなくなるので使い所をきちんと見極めよう!!
関連しているかもしれない記事
- CloudComposer のDAGをCircleCIで更新する
- GCPのCloud Composer のDAGを素早く・簡単にデバッグする
- OSS の Google BigQuery UDF `bqutil.fn` を使えば UDF の独自実装を置き換えられるかもしれない
- Dataflow template を使って Google Cloud Pub/Sub の中身を簡単に確認する
- Airflow でDAGを任意のタイミングで一度だけ実行する方法
Support
記事をお読みくださりありがとうございます。 このウェブサイトの運営を支援していただける方を募集しています。 もしよろしければ、Buy Me a Coffee からサポート(投げ銭)していただけると、記事の執筆、情報発信のモチベーションに繋がります✨--
記事を楽しめましたか? RSSで更新情報を配信しているので、お好きなフィードリーダーで購読してみてください。また、記事へのリアクションやコメントなどを、以下のGitHub を利用したコメントシステムからしていただけると執筆の励みになります。