Google应用引擎批量加载器环境变量

时间:2012-07-20 14:09:53

标签: python google-app-engine bulkloader

我依靠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

还有其他想法吗?

1 个答案:

答案 0 :(得分:1)

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

您可以使用env命令传递变量,如下所示:

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