2012-07-20 76 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

相關問題