0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

DatabricksにてPythonにより開発環境・本番環境等に応じた環境情報に切り替える方法

Last updated at Posted at 2021-07-19

概要

Databricksにて環境情報(開発環境・本番環境)を切り替える方法として、環境に関する情報をステージ(開発、検証、本番)ごとにPythonの辞書として定義しておき、パラメータにより取得する情報を切り替える方法を共有します。

環境を切り替えるノートブック(switch_evn_inf)と環境のステージ(dev、prd)ごとのノートブックを作成することを想定しております。
image.png

詳細は下記のGithub pagesのページをご確認ください。

コードを実行したい方は、下記のdbcファイルを取り込んでください。

https://github.com/manabian-/databricks_tecks_for_qiita/blob/main/tecks/swich_env_inf/dbc/swich_env_inf.dbc

手順

1. 環境情報を辞書型変数にセット

文字型変数としてセットしたい場合には、シングルクォーテーションの中でダブルクオーテーションで囲ってください(例:'"dev_d"')。

env_dict = {}
    
# 検証環境の情報をdictに設定
dev_env_dict = {
    "dev": {
        'string': '"dev_d"',
        'int': '123',
        'float': '1.23',
        'boolean': 'True',
        'list': '["A","B"]',
        'dict': '{"a":"A","b":"B"}',
    }
}

# 共通のdictに検証環境のdictをappend
env_dict.update(prd_env_dict)
     
# 本番環境の情報をdictに設定
prd_env_dict = {
    "prd": {
        'env': '"prd"',
        'port': '15001',
    }
}
 
# 共通のdictに本番環境のdictをappend
env_dict.update(prd_env_dict)

2. 辞書型変数から変数をセットする関数を定義

def swich_env_inf(target_env_dict):
    for attribute, value in target_env_dict.items():
        code=textwrap.dedent(f'''
            global {attribute} 
            {attribute}={value}
        ''').strip()
        exec(code)

3. 環境①の変数を定義

# 環境①の環境名をセット
target_env = 'dev'
target_env_dict = env_dict[target_env]

swich_env_inf(target_env_dict)

image.png

4. 環境の②の変数を定義

# 環境①の環境名をセット
target_env = 'prd'
target_env_dict = env_dict[target_env]

# 環境①の環境名をセット
target_env = 'prd'
target_env_dict = env_dict[target_env]

image.png

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?