複数の環境の管理¶
近い将来、複数の Genvid SDK クラウド環境が必要になってくるはずです。デバッグ環境とプロダクション環境を別に設定するいった単純な理由かもしれませんが、複数のプロダクション環境が必要になるといった状況も出てくるかもしれません。
このセクションでは、プロフィールを使って複数の環境を取り扱う方法および、作業用ツールのカスタマイズ方法について説明します。
In This Section
カスタム環境プロフィール¶
複数の環境を管理する場合、環境を切り替える際にそれぞれの環境が適切に設定されていることを確認するのは、面倒に感じるかもしれません。この処理を簡単に行えるように、Genvid SDK では、名前付きプロフィールをサポートしています。
たとえば、デバッグ環境、プロダクション環境で、ツールの冗長性を調整したくなるかもしれません。~/.genvid/profile
でプロフィールに記述することで、それが可能になります。
profile "production" {
GENVID_TOOLBOX_LOGLEVEL = "INFO"
}
profile "debug" {
GENVID_TOOLBOX_LOGLEVEL = "DEBUG"
}
GENVID_PROFILE
を production または debug に設定すると、内容に応じて環境が更新されます。
$ export GENVID_PROFILE="debug"
$ genvid-bastion env
> [...]
> GENVID_TOOLBOX_LOGLEVEL="DEBUG"
> [...]
$ export GENVID_PROFILE="production"
$ genvid-bastion env
> [...]
> GENVID_TOOLBOX_LOGLEVEL="INFO"
> [...]
genvid-bastion の サブコマンド env で、現在使用中の環境をツールに表示することができます。デフォルトのプロフィールとの違いを確認して、自分に最適な環境づくりの参考にしてください。
警告
プロフィール名を設定した場合、そのプロフィールが存在している必要があります。
プロフィールファイルの保存場所のカスタマイズ¶
プロフィールを検索するために、目的のプロフィールが見つかるまで、GENVID_PROFILES_PATH
で定義したパスをツールボックスが解析します。
再帰的に検索するディレクトリや通常ファイルなど、 os.pathsep
で分類したパスの一覧に設定することもできます。必要に応じて構造体にプロフィールを自由に格納してください。
警告
同一パス内に競合するプロフィール名を設定することはできません。
カスタムツールにプロフィールとの互換性を持たせる¶
スクリプトでプロフィールを使用する場合、他のツールボックスと同様、プロファイルと同時に使用すると便利です。その場合、スクリプトに Profile
オブジェクトを作成し、そのいずれかの子の BaseTool
インスタンスのインスタンスを作成する前に apply()
メソッドを呼び出します。
その後、プロフィール インスタンスをツールの main()
メソッドに渡します。
def main():
profile = Profile()
profile.apply()
os.environ.setdefault("GENVID_TOOLBOX_LOGLEVEL", "INFO")
tool = WebSample()
return tool.main(profile=profile)
このコードは 3 つの処理を行います。
Profile
の constructor が、メモリ内の アクティブなプルフィールを探して読み込みます。profile.apply()
は、アクティブなプロフィールで定義されるすべての環境変数にデフォルト値を与えます。デフォルトの環境変数を設定したり、BaseTool
インスタンスを作成する前に、呼び出す必要があります。最後に、診断のため、適用したプロフィールが
main()
に渡されます。
プロフィールのカスタムツールへの統合については、 プロフィール
を参照してください。