0

我依靠 pythonos.environ来确定我的应用程序应该使用什么配置(例如不同主机的不同 API 密钥)。

似乎bulkloader无法访问这些变量,无论如何我可以知道bulkloader运行时我的应用程序的当前版本或当前主机是什么?

通常我在我的config_helper

env = os.environ[ 'CURRENT_VERSION_ID' ].split( '.' )[ 0 ]

并且 bulkloader 报告了关于 的 KeyError CURRENT_VERSION_ID,所以我使用了这个:

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.

还有其他想法吗?

4

1 回答 1

1

Environment variables like HTTP_HOST and CURRENT_VERSION_ID are only available when your app is running as a web application.

Probably you can just pass the variables with env command as follows:

$ env CURRENT_VERSION_ID=local.1 bulkloader ....
于 2012-07-24T02:42:16.573 回答