uWSGI根据环境变量设置配置

zza*_*art 6 uwsgi

请帮助我理解uWSGI配置逻辑。我有一个环境变量ENVIRONMENT。假设它的值可以是dev或prod。我想根据以下值设置配置选项ENVIRONMENT

# always executes print statement, doesn't matter what ENVIRONMENT is set to
if-env= ENVIRONMENT
if-opt: %(_)=dev
print = RUNNING %(_)
endif:
endif =

# always executes print statement, doesn't matter what ENVIRONMENT is set to
running = ENVIRONMENT
if-opt: running=dev
print = RUNNING %(_)
endif:
Run Code Online (Sandbox Code Playgroud)

我假设 ifENVIRONMENT设置为块内的prod任何赋值或print语句都if-opt不会执行。但事实并非如此。

kic*_*hik 5

这应该有效:

[uwsgi]
if-env = ENVIRONMENT
env = %(_)
endif =
if-not-env = ENVIRONMENT
env = none
endif =
print = RUNNING %(env)
if-opt = env=dev
print = running dev yay
endif =
Run Code Online (Sandbox Code Playgroud)

您在 INI 配置中使用了 YAML 语法。我也不得不删除if-opt因为if-env它抱怨递归。可能有一种方法可以缩短它,但这是可行的。