2012-07-20 78 views
0

我依靠python的os.environ来确定我的应用程序应该使用什么配置(例如不同的主机使用不同的API密钥)。Google应用程序引擎bulkloader环境变量

似乎bulkloader无法访问这些变量,是否有无论如何我可以告诉当我的应用程序或当前主机当前版本是什么时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

还有其他想法吗?

回答

1

像HTTP_HOST和CURRENT_VERSION_ID这样的环境变量仅在您的应用程序作为Web应用程序运行时才可用。

也许你可以通过使用env命令的变量如下:

$ env CURRENT_VERSION_ID=local.1 bulkloader .... 
+0

真棒,我会努力的! – 2012-07-24 12:23:59

相关问题