Wdrażanie wielu środowisk z bazy kodu

Często w tej samej bazie kodu jest wdrożonych kilka środowisk, każde z nieco inną konfiguracją. Możesz na przykład przypisać do środowiska przejściowego mniej procesora i pamięci RAM lub upewnić się, że w środowisku produkcyjnym co najmniej 1 instancja jest aktywna i gotowa do obsługi żądań.

Więcej informacji o środowiskach znajdziesz w artykułach Omówienie środowisk i Ogólne sprawdzone metody konfigurowania projektów Firebase.

Wymagania wstępne

Krok 0. Skonfiguruj produkcyjną gałąź Git

Jeśli wolisz wdrożyć środowisko produkcyjne z gałęzi main, przejdź do następnego kroku. Gdy chcesz wdrożyć środowisko produkcyjne z innej gałęzi, na przykład production, musisz najpierw utworzyć go na GitHubie.

Informacje o tym, jak utworzyć gałąź produkcyjną przy użyciu interfejsu GitHub, znajdziesz w sekcji Tworzenie i usuwanie gałęzi w obrębie repozytorium.

Aby utworzyć gałąź produkcyjną lokalnie:

$ git checkout -b production
$ git push origin production:production

Krok 1. Skonfiguruj produkcyjny plik apphosting.yaml

Załóżmy, że chcesz mieć pewność, że w środowisku produkcyjnym zawsze działa co najmniej 1 maszyna i że zawiera ona zmienne środowiskowe produkcyjne. Aby to zrobić, w katalogu głównym projektu utwórz plik apphosting.yaml podobny do tego:

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 1

env:
  - variable: STORAGE_BUCKET
    value: <production Cloud Storage bucket name>

Pełną listę obsługiwanych ustawień znajdziesz w artykule Konfigurowanie hostingu aplikacji.

Po zakończeniu edytowania pliku apphosting.yaml wypchnij go do repozytorium GitHub:

$ git add apphosting.yaml
$ git commit -m "Added production App Hosting backend configuration."
$ git push origin

Krok 2. Wdróż bazę kodu w środowisku produkcyjnym

Po skonfigurowaniu produkcyjnej gałęzi Git będzie można utworzyć nowy backend produkcyjny App Hosting. Szczegółowe instrukcje znajdziesz w artykule o pierwszych krokach z App Hosting.

Aby utworzyć nowy backend w konsoli Firebase, otwórz stronę https://console.firebase.google.com/project/_/apphosting.

Aby utworzyć go lokalnie, zainstaluj interfejs wiersza poleceń Firebase i uruchom:

firebase apphosting:backends:create --project <replace with your PRODUCTION project ID>

Po pomyślnym wykonaniu tego polecenia backend produkcyjny powinien być aktywny, a wszystkie nowe zobowiązania dotyczące gałęzi produkcyjnej będą automatycznie kompilowane i wdrażane przez App Hosting.

Krok 3. Skonfiguruj gałąź przejściowy git

Wykonaj te same czynności co powyżej, aby utworzyć gałąź przejściową w GitHubie:

$ git checkout -b staging
$ git push origin staging:staging

Krok 4. Skonfiguruj przejściowy plik apphosting.yaml

Gałąź przejściowa powinna już mieć kopię pliku produkcyjnego apphosting.yaml. Zmodyfikujmy je, aby usługa App Hosting mogła wyłączyć środowisko testowe, gdy nie jest ono aktywnie używane, i ustawić inną wartość zmiennej środowiskowej STORAGE_BUCKET.

# Saved at <repository root>/apphosting.yaml

runConfig:
  minInstances: 0

env:
  - variable: STORAGE_BUCKET
    value: <some other staging Cloud Storage bucket name>

Po zakończeniu edytowania wypchnij plik do gałęzi przejściowej git:

$ git add apphosting.yaml
$ git commit -m "Added staging App Hosting backend configuration."
$ git push origin

Krok 5. Wdróż bazę kodu na etapie przejściowym

Po skonfigurowaniu gałęzi przejściowej git możesz wykonać te same czynności co powyżej, aby wdrożyć bazę kodu w środowisku testowym:

firebase apphosting:backends:create --project <replace with your STAGING project ID>

Po wykonaniu tego kroku będziesz mieć 2 backendy App Hosting oparte na tej samej bazie kodu: jeden dla środowiska produkcyjnego, a drugi do testowania – każdy w innym projekcie Firebase.

Dalsze kroki