W większości przypadków zalecamy korzystanie z automatycznych wdrożeń lub ręcznie wywoływanych wdrożeń z konsoli Firebase. Możesz jednak potrzebować bardziej spersonalizowanego procesu wdrażania. App Hosting oferuje kilka opcji wdrożenia niestandardowego.
Wdrażanie ze źródła
Wdrażanie ze źródła umożliwia przesyłanie kodu źródłowego i konfiguracji aplikacji bezpośrednio do App Hosting bez konieczności utrzymywania stałego połączenia z GitHubem.
Podczas wdrażania ze źródła App Hosting przesyła kod źródłowy do zasobnika
Google Cloud Storage, uruchamia polecenie kompilacji frameworka w
Cloud Build i wdraża skompilowane artefakty w Cloud Run i
Cloud CDN. Do wdrożeń ze źródła lokalnego
i wdrożeń z GitHuba używany jest ten sam proces kompilacji. Jeśli w projekcie znajduje się plik .gitignore, pliki i foldery wymienione w tym pliku są wykluczane z wdrożenia.
Możesz wdrożyć aplikację ze źródła lokalnego za pomocą Firebase interfejsu wiersza poleceń lub Firebase konsoli.
Wymagane uprawnienia i konfiguracja infrastruktury
Interfejs wiersza poleceń Firebase i konsola Firebase używają tej samej infrastruktury backendu do przechowywania i kompilowania archiwów źródłowych, dlatego w przypadku obu metod wdrażania obowiązują te same wymagania dotyczące uprawnień.
Dokładne wymagania zależą od tego, czy wdrażasz aplikację w określonej lokalizacji (regionie) po raz pierwszy. Więcej informacji o uprawnieniach znajdziesz w omówieniu Firebase IAM i w informacjach o konkretnych uprawnieniach Hostingu aplikacji Firebase.
Uprawnienia do wstępnego wprowadzania (pierwsze wdrożenie w lokalizacji)
Gdy wdrożenie ze źródła lokalnego zostanie zainicjowane w lokalizacji projektu po raz pierwszy, Hosting musi udostępnić zasobnik GCS do przechowywania archiwów i przyznać agentowi usługi Hosting dostęp do nich. Ponieważ są to zadania administracyjne na poziomie projektu, wymagają one uprawnień właściciela projektu lub administratora uprawnień. Użytkownik z podstawową rolą Edytujący lub Przeglądający nie może przeprowadzić tej wstępnej konfiguracji i zostanie zablokowany.
Uprawnienia wymagane do konfiguracji wstępnej obejmują:
- Włączanie interfejsu Storage API:
serviceusage.services.enable - Tworzenie zasobnika źródłowego:
storage.buckets.createistorage.buckets.list - Konfigurowanie agenta usługi:
resourcemanager.projects.setIamPolicyaby przyznać Hosting dostęp do odczytu (roles/storage.objectViewer), dzięki czemu będzie on mógł pobierać przesłany kod podczas kompilacji.
W przypadku wdrożenia początkowego zasobnik GCS jest tworzony z 30-dniowym cyklem życia, po którym zasobnik jest usuwany. Możesz jednak zarządzać tym okresem w konsoli Cloud w sekcji Cloud Storage > Zasobniki > Cykl życia > Reguły. Więcej informacji znajdziesz w artykule Zarządzanie cyklami życia obiektów.
Uprawnienia do kolejnych wdrożeń (po zainicjowaniu lokalizacji)
Gdy zasobnik źródłowy i powiązania ról zostaną zainicjowane w lokalizacji (za pomocą początkowego wdrożenia w interfejsie wiersza poleceń lub konfiguracji w konsoli), zwykli programiści, edytorzy lub App Hosting administratorzy mogą wdrażać aktualizacje. W przypadku rutynowych wdrożeń nie są wymagane uprawnienia administracyjne na poziomie projektu.
Uprawnienia do aktywnego wdrażania obejmują:
- Weryfikowanie zasobnika:
storage.buckets.list - Przesyłanie archiwum źródłowego:
storage.objects.create - Wywoływanie kompilacji i wdrażania: Standardowe uprawnienia Hosting (
apphosting.builds.createiapphosting.rollouts.create)
Wdrażanie ze źródła za pomocą interfejsu wiersza poleceń Firebase
Firebase CLI w wersji 14.4.0 i nowszej umożliwia przesyłanie kodu źródłowego i konfiguracji aplikacji bezpośrednio z komputera lokalnego do Firebase. Jest to wygodne, jeśli zarządzasz już innymi wdrożeniami Firebase (np. regułami bezpieczeństwa lub funkcjami) i chcesz wdrożyć aplikację internetową oraz usługi backendu za pomocą jednego polecenia interfejsu wiersza poleceń.
Wymagania wstępne
- Twoje projekty muszą być objęte planem Blaze.
- Musisz używać narzędzi firebase w wersji 14.4.0 lub nowszej.
Kroki wdrożenia
- W katalogu projektu lokalnego uruchom polecenie
firebase init apphosting. - Gdy pojawi się prośba, wybierz Użyj istniejącego projektu i wybierz docelowy projekt w Firebase.
- Wybierz nowy lub istniejący backend, w którym chcesz wdrożyć aplikację. Ten krok konfiguruje wdrożenia Hosting w katalogu lokalnym i wyświetla prośbę o podanie szczegółów konfiguracji:
- Identyfikator backendu, w którym chcesz wdrożyć aplikację.
- Region, w którym chcesz wdrożyć aplikację, jeśli tworzysz nowy backend.
- Ścieżka do katalogu głównego kodu aplikacji.
- Preferowane środowisko wykonawcze Node.js. Wybranie środowiska wykonawczego z wersją umożliwia automatyczne aktualizacje obrazu podstawowego (ABIU) które automatycznie stosują poprawki zabezpieczeń w środowisku bazowym.
- App Hosting zapisuje preferencje wdrożenia w pliku
firebase.json, tworząc go w projekcie lokalnym, jeśli jeszcze nie istnieje. Po pomyślnym zakończeniu inicjowania uruchom poleceniefirebase deploy, aby wdrożyć kod źródłowy.
Przykład pliku firebase.json
{
"apphosting": [
{
"backendId": "my-backend",
// rootDir specifies the directory containing the app to deploy, but the entire
// parent directory of firebase.json will be zipped and uploaded to ensure that
// dependencies outside of the app directory will be available at build time.
"rootDir": "./my-app",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug.*.log",
"functions"
]
}
]
}
Wdrażanie za pomocą konsoli Firebase (przesyłanie pliku ZIP)
Konsola Firebase udostępnia graficzny interfejs do wdrażania aplikacji przez bezpośrednie przesłanie skompresowanego archiwum źródłowego. Jest to alternatywa dla procesu połączenia z GitHubem w przypadkach, gdy nie chcesz używać GitHuba lub wolisz inną konfigurację CI/CD.
Przesyłanie archiwów można przeprowadzić podczas początkowego tworzenia backendu lub podczas tworzenia ręcznego wdrożenia w istniejącym backendzie, w tym w backendach wdrożonych pierwotnie za pomocą interfejsu wiersza poleceń Firebase.
Obsługiwane formaty
Narzędzie do przesyłania w konsoli natywnie weryfikuje i akceptuje 2 formaty skompresowanych archiwów:
.zip.tgz
Te formaty są wyraźnie widoczne w tekście opisu narzędzia do przesyłania plików.
Kroki wdrożenia
Opcja A. Podczas wstępnego wprowadzania backendu
- Wybierz źródło: w kreatorze tworzenia backendu w kroku „Jak chcesz zaimportować aplikację?” wybierz Prześlij plik ZIP.
- Przygotowanie do wprowadzania: kliknięcie „Dalej” powoduje uruchomienie procesu przygotowania w tle, który kolejno włącza interfejs Storage API, sprawdza, czy są skonfigurowane prawidłowe role, i aktualizuje zasobnik. W interfejsie wyświetla się wskaźnik wczytywania
z dynamicznymi komunikatami o stanie: „Włączanie interfejsu API...” „Sprawdzanie
uprawnień...” i „Przygotowywanie zasobnika...”.
- Obsługa błędów i zabezpieczenia: jeśli którykolwiek krok przygotowania się nie powiedzie (np. użytkownik, który nie jest właścicielem, otrzyma komunikat
403 PERMISSION_DENIEDz powodu niewystarczających uprawnień), w interfejsie wyświetli się ostrzeżenie z prośbą o skontaktowanie się z właścicielem projektu. Nawigacja po krokach jest zablokowana, a przycisk „Dalej” i końcowy przycisk „Zakończ i wdróż” pozostają wyłączone do czasu rozwiązania problemu.
- Obsługa błędów i zabezpieczenia: jeśli którykolwiek krok przygotowania się nie powiedzie (np. użytkownik, który nie jest właścicielem, otrzyma komunikat
- Prześlij pliki: gdy przygotowanie się zakończy, wybierz lub przeciągnij plik archiwum do komponentu narzędzia do przesyłania plików.
Skonfiguruj ustawienia: określ katalog główny aplikacji (domyślnie
/).Kliknij Zakończ i wdróż: samodzielny przycisk "Zakończ" jest wyłączony w przypadku przesyłania plików ZIP, ponieważ przesłanie archiwum jest jednorazową czynnością, po której musi nastąpić natychmiastowe wdrożenie, aby zapewnić prawidłowe działanie backendu.
Opcja B. Tworzenie ręcznego wdrożenia
- Otwórz okno: w panelu Hosting kliknij Utwórz wdrożenie.
- Wybierz źródło: w kroku okna wybierz Prześlij plik ZIP. Jeśli backend nie ma połączenia z GitHubem, opcja „GitHub” jest wyłączona.
- Przygotowanie i przesyłanie: wybór powoduje uruchomienie tego samego procesu przygotowania w tle („Włączanie interfejsu API...”, „Sprawdzanie uprawnień...” i „Przygotowywanie zasobnika...”). Gdy proces się zakończy, przeciągnij lub wybierz plik archiwum za pomocą narzędzia do przesyłania, określ katalog główny aplikacji i kliknij Wdróż aby wywołać kompilację i wdrożenie.
Wdróż z użyciem Terraform
Jeśli potrzebujesz większej kontroli nad procesem kompilacji i wdrożonym środowiskiem, możesz wdrożyć aplikację za pomocą Terraform. Terraform umożliwia definiowanie zasobów App Hosting i zarządzanie nimi za pomocą deklaratywnych plików konfiguracyjnych. Umożliwia też wdrażanie własnego wstępnie utworzonego obrazu kontenera bezpośrednio w App Hosting, zamiast polegać na App Hosting w zakresie kompilacji z kodu źródłowego .
Jeśli dopiero zaczynasz korzystać z Terraform, zapoznaj się z artykułem Pierwsze kroki z Terraform i Firebase. Jeśli znasz już Terraform, możesz zacząć od przykładowych plików konfiguracyjnych i innych App Hosting zasobów.
Konfigurowanie połączenia z GitHubem na potrzeby CI/CD
W dowolnym momencie możesz połączyć repozytorium GitHub na karcie Wdrożenie w ustawieniach backendu w konsoli Firebase. Umożliwia to wdrożenie prototypu aplikacji ze środowiska lokalnego, a następnie przejście do automatycznego potoku CI/CD, gdy będziesz gotowy.
Wdrażanie za pomocą narzędzi opartych na AI
22 marca 2027 r. wyłączymy Firebase Studio. Nie wpłynie to na Twoje App Hosting backendy, ale przycisk Opublikuj w Firebase Studio zostanie wycofany. Aby nadal publikować aktualizacje bez zmiany adresu URL, przeprowadź migrację projektu. Dowiedz się, jak przeprowadzić migrację.