谷歌应用程序引擎bulkloader环境变量



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

看起来bulkloader无法访问这些变量,当bulkloade运行时,我是否可以判断我的应用程序或当前主机的当前版本?

通常我在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

还有其他想法吗?

HTTP_HOST和CURRENT_VERSION_ID等环境变量仅在应用程序作为web应用程序运行时可用。

也许您可以通过env命令传递变量,如下所示:

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

相关内容

  • 没有找到相关文章

最新更新