Alternatywne sposoby wdrażania aplikacji do Hostingu aplikacji

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.create i storage.buckets.list
  • Konfigurowanie agenta usługi: resourcemanager.projects.setIamPolicy aby 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.create i apphosting.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

  1. W katalogu projektu lokalnego uruchom polecenie firebase init apphosting.
  2. Gdy pojawi się prośba, wybierz Użyj istniejącego projektu i wybierz docelowy projekt w Firebase.
  3. 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.
  4. 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 polecenie firebase 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
  1. Wybierz źródło: w kreatorze tworzenia backendu w kroku „Jak chcesz zaimportować aplikację?” wybierz Prześlij plik ZIP.
  2. 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_DENIED z 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.
  3. Prześlij pliki: gdy przygotowanie się zakończy, wybierz lub przeciągnij plik archiwum do komponentu narzędzia do przesyłania plików.
  4. Skonfiguruj ustawienia: określ katalog główny aplikacji (domyślnie /).

  5. 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
  1. Otwórz okno: w panelu Hosting kliknij Utwórz wdrożenie.
  2. 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.
  3. 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ę.