我依靠python的os.environ
来计算我的应用程序应该使用的配置(例如不同主机的不同API密钥)。
看起来bulkloader无法访问这些变量,无论如何我可以告诉我的应用程序当前版本或当前主机在批量加载程序运行时是什么?
通常我会在config_helper
:
env = os.environ[ 'CURRENT_VERSION_ID' ].split( '.' )[ 0 ]
并且bulkloader报告了关于CURRENT_VERSION_ID
的KeyError,因此我使用了这个:
if os.environ.get('HTTP_HOST'):
host = os.environ['HTTP_HOST']
else:
host = os.environ['SERVER_NAME']
if host is not None:
if host.find( 'locahost' ):
env = 'local'
elif host.find( 'prod-server' ):
env = 'prod'
elif host.find( 'dev-server' ):
env = 'dev'
elif host.find( 'stage-server' ):
env = 'stage'
os.environ[ 'CURRENT_VERSION_ID' ] = env + '.1'
但是,bulkloader会抱怨SERVER_NAME
是无效的对象,这意味着它也找不到HTTP_HOST
。
还有其他想法吗?
答案 0 :(得分:1)
HTTP_HOST和CURRENT_VERSION_ID等环境变量仅在您的应用作为Web应用程序运行时才可用。
您可以使用env命令传递变量,如下所示:
$ env CURRENT_VERSION_ID=local.1 bulkloader ....