0

os.environ私は、アプリケーションが使用する必要がある構成 (ホストごとに異なる API キーなど) を解決するために、python に依存しています。

バルクローダーはこれらの変数にアクセスできないようですが、バルクローダーが実行されているときにアプリケーションの現在のバージョンまたは現在のホストが何であるかを知ることはできますか?

通常、私はこれを my で行います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'

ただし、バルクローダーは、それが無効なオブジェクトであることを訴え、SERVER_NAMEそれも見つからないことを意味しますHTTP_HOST

他のアイデアはありますか?

4

1 に答える 1

1

HTTP_HOST や CURRENT_VERSION_ID などの環境変数は、アプリが Web アプリケーションとして実行されている場合にのみ使用できます。

おそらく、次のように env コマンドで変数を渡すことができます。

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