5

Obecnie migruję aplikację do Google App Engine, która opiera się na zmiennych środowiskowych dla różnych połączeń zewnętrznych. Wygląda na to, że plik app.yaml powinien skonfigurować te konfiguracje, ale jak mam zarządzać różnymi środowiskami (programowanie, testowanie, testowanie, produkcja), gdzie te zmienne mogą być inne?App Engine: różne pliki app.yaml oparte na środowisku

Czy to najprostszy sposób na stworzenie oddziału dla każdego z tych środowisk za pomocą innego pliku app.yaml?

+1

Być może lepiej mieć różne pliki, np. dev.yaml staging.yaml i tak dalej. Następnie możesz uruchomić serwer dev_server z tymi plikami jawnie, a po wdrożeniu zawsze będziesz używać app.yaml. –

+0

@PaulCollingwood czy istnieje polecenie uruchomienia z określonym plikiem konfiguracyjnym? Nie widziałem tego w dokumentacji. – jwarzech

+0

można po prostu powiedzieć dev_appserver somefile.yaml i będzie go używać. bardzo przydatny. ale tylko lokalnie, nie prod afaik. –

Odpowiedz

6

app.yaml puszka ustawić zmienne środowiskowe dla reszty aplikacji, ale to nie ma możliwości sprawdzeniaje i robić różne rzeczy w zależności od ich wartości przychodzących. W związku z tym należy przedstawić różne pliki app.yaml do dowolnej procedury wdrażania, której używasz.

Jeśli chodzi o najlepszy sposób przygotowania odpowiedniego app.yaml jako wstępnego kroku do wdrożenia GAE, jest to trudniejszy problem. Oddziały w twoim git lub hg, czy jakkolwiek, jak wspomniałeś, działałyby, ale osobiście (może po prostu pech?) - często odkryłem, że im prostsza struktura, tym lepiej i gałęzie, które mają być długowieczne (jak w przeciwieństwie do przejściowych odchyleń, które wkrótce zostaną z powrotem włączone do bagażnika) sprawiły, że odczuwałem gorsze bóle głowy.

Tak więc, gdyby to zależało ode mnie, musiałbym mieć szablon preapp.yaml (może jinja2, cokolwiek) z potrzebną logiką if/else i przygotować od niego app.yaml, jako pierwszy krok każdego wdrożenia, za pomocą prostego skryptu w języku Python.

Dość dużo rodzaj architektury wykorzystywane (dla wszystkich rodzajów plików konfiguracyjnych, a tym samym z powikłaniami bardziej nieuniknione) dla aktualnie beta gcloud preview deployment-manager patrz https://cloud.google.com/deployment-manager/, więc oczywiście mogę być stronniczy w kierunku podejścia (ale jak ja wspomniałem, że moje uprzedzenia pochodzą zasadniczo z wcześniejszych doświadczeń związanych z nieprawidłowym wdrażaniem :-).