2012-07-20 3 views
0

파이썬의 os.environ에 의존하여 내 애플리케이션에서 사용해야하는 구성 (다른 호스트의 다른 API 키)을 해결합니다.Google 애플 리케이션 엔진 벌크 로더 환경 변수

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와 같은 환경 변수는 앱이 웹 응용 프로그램으로 실행될 때만 사용할 수 있습니다. 최고

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

을 내가 이것을 시도 할 것이다, 다음과 같이

아마 당신은 ENV 명령으로 변수를 전달할 수 있습니다! –

관련 문제