5

현재 다양한 외부 연결에 대한 환경 변수에 의존하는 애플리케이션을 Google App Engine으로 마이그레이션 중입니다. app.yaml 파일에서 이러한 구성을 설정해야하지만이 변수가 다른 환경 (개발, 테스트, 준비, 생산)을 어떻게 관리해야합니까?App Engine : 환경을 기반으로하는 다양한 app.yaml 파일

단지 다른 app.yaml 파일로 각 환경에 대한 분기를 만드는 것이 가장 쉬운 솔루션입니까? 자신의 입력 값에 따라 다른 일을

+1

아마도 다른 파일을 갖는 것이 좋습니다. dev.yaml staging.yaml 등등. 그런 다음 dev_server를 명시 적으로 실행할 수 있으며 배포 할 때 항상 app.yaml을 사용합니다. –

+0

@PaulCollingwood는 특정 설정 파일로 실행하는 명령이 있습니까? 나는 그 문서에서 그것을 보지 못했다. – jwarzech

+0

당신은 dev_appserver somefile.yaml이라고 말할 수 있습니다. 매우 편리합니다. 그러나 단지 지역적으로, afaik를 자극하지 않았습니다. –

답변

6

app.yaml응용 프로그램의 나머지 부분에 대한 환경 변수를 설정하지만, 체크을 할 수있는 방법이 없으며 않습니다. 따라서 사용중인 배포 절차에 따라 다른 app.yaml 파일을 제시해야합니다.

오른쪽에 app.yaml을 GAE 배치의 예비 단계로 준비하는 가장 좋은 방법은 미묘한 디보프 문제입니다. 당신이 말한 것처럼, 당신의 자식 또는 hg 또는 무엇이든간에, 일할 것이지만, 개인적으로 (아마도 불행일지도 모릅니다.) - 나는 종종 내 구조가 더 좋고 수명이 길어지기 쉬운 곧 트렁크에 병합 되려고하는 일시적인 편차에 반대 함) 나에게 더 나쁜 두통이 닥쳤다.

그렇다면, 필요한 모든 if/else 로직을 가지고 preapp.yaml 템플릿 (어쩌면 jinja2)을 가지고 있고 배포본의 첫 번째 단계로 오른쪽에서 app.yaml을 준비하고 싶습니다. 간단한 파이썬 스크립트로.

현재 베타 gcloud preview deployment-manager에 사용 된 아키텍처의 종류 (모든 종류의 구성 파일에 대해, 따라서 필연적 인 복잡성으로 인해)는 https://cloud.google.com/deployment-manager/을 참조하십시오. 물론 접근법에 편향 될 수 있습니다. 앞서 언급 한 나의 편견은 이전의 나쁜 전개 경험에서 비롯된다.