🦔
Digdag で環境ごとのパラメーターを設定
ステージング環境や本番環境など環境ごとにパラメーターを切り分けたい場合のやり方
以下のように環境ごとにパラメーターを定義しておく
config.yml
prd:
aws:
rds:
hostname: rds.jp
ro_hostname: rds-ro.jp
user: root
password: ...
stg:
aws:
rds:
hostname: rds.stg.jp
ro_hostname: rds-ro.stg.jp
user: root
password: ...
以下の Python を用意
Digdag の実行環境で環境変数DIGDAG_ENV
を設定しておく
本記事の例だと、DIGDAG_ENV
には、prd
かstg
が設定されている
import os
import yaml
import digdag
def setup():
f = open("config.yml")
data = yaml.load(f)[os.environ["DIGDAG_ENV"]]
digdag.env.store(data)
1 番最初のタスクとして、setup を呼ぶことで、以降のタスクで環境ごとのパラメーターが使用できるようになる
+setup:
py>: tasks.setup
+sample_task:
_export:
rds_host: ${aws.rds.hostname}
rds_user: ${aws.rds.user}
rds_pass: ${aws.rds.password}
py>: tasks.rds_connect
Discussion