uWSGI 根据环境变量设置配置

uWSGI set configuration depending on environment variable

请帮我理解uWSGI配置逻辑。 我有一个环境变量 ENVIRONMENT。假设它的值可以是 devprod。我想根据 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:

我假设如果 ENVIRONMENT 设置为 prod none 赋值或 if-opt 块内的 print 语句将执行。但事实并非如此。

这应该有效:

[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 =

您在 INI 配置中使用了 YAML 语法。我还不得不从 if-env 中取出 if-opt 因为它抱怨递归。可能有办法让它更短,但这个有效。