我有一些在多个环境中运行的python代码。代码检查环境变量是否存在,并根据定义的环境变量采用略有不同的路径。代码是:
def _get_sink_to_function():
# Determine which path we send data to, based on env variables
# One of the following env variables must be present.
funcdict = {
'LOG_SINK': _post_gzip_to_log_sink,
'FIREHOSE_SINK': _post_gzip_to_firehose_sink
}
for v in funcdict.keys():
if os.environ.get(v):
return funcdict[v]
return None
main():
sink_to_func = _get_sink_to_function()
if not sink_to_func:
raise AssertionError('Missing mandatory env variable')
...
sink_to_func(gzip_data)
使用ansible设置环境变量。
因此,我想有条件地创建environement变量。
例如,在此(有效)ansible代码中:
LOG_SYNC: "{% if logger == 'one' %}path-to-the-log{% endif %}"
始终定义LOG_SYNC,有时值为“path-to-the log”,有时为空。如果logger不等于'one',我希望根本不定义LOG_SYNC。
换句话说,我想要这样的东西:
{% if logger == 'one' %}
LOG_SYNC: "path-to-the-log"
{% endif %}
但是,似乎不允许这样做。
答案 0 :(得分:-1)
编译器,无论您编写什么语言代码,都需要先定义变量,如果以后随时使用它。
因此您需要定义变量,赋值NULL然后它不会占用任何内存