embulk に環境変数で接続情報を渡す

tl;dr;

embulk で環境変数を処理することができる.liquid

について紹介。これを使うことで、docker image を複数環境で起動することができるようになる。

公式ドキュメント

以下のような記載がある。

https://www.embulk.org/docs/built-in.html

試してみた

準備

以下のようなディレクトリ構成


├── Dockerfile
└── config.yml.liquid

それぞれ中身は以下の通り

受け取る側には {{env.}} を接頭辞として付ける。

build

docker build コマンドでビルドする。

使い方

環境変数に接続先情報や、クエリの情報を渡す。

.liquid ファイル内では env. で受け取るが、docker 起動する際に渡す環境変数には、env を付けづに実行する。

無事データを取得することができた。

所感

これを使えば、コンテナ内にcredential情報を保持しなくて済むようになるため、1つのcontainer imageで、複数環境で動かすことができそうだ。