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
- Kod Twojej aplikacji jest już zapisany na GitHubie.
- Masz już utworzony oddzielny projekt dla każdego ze środowisk, np.
my-production-firebase-project
imy-staging-firebase-project
.- Wskazówka: nie zapomnij oznaczyć produkcyjnego projektu Firebase tagiem środowiska „produkcyjnego”.
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
- Dowiedz się więcej: przejdź do ćwiczenia z programowania w Firebase, które integruje hostowaną aplikację z Uwierzytelnianiem Firebase i funkcjami AI od Google: Next.js | Angular
- Połącz domenę niestandardową
- Skonfiguruj backend
- Monitorowanie wdrożeń, wykorzystania witryny i logów.