Alternatywne sposoby wdrażania aplikacji do Hostingu aplikacji

Zazwyczaj zalecamy korzystanie z automatycznego wdrażania lub wdrażania wywoływanego ręcznieFirebase konsoli. Możesz jednak potrzebować bardziej spersonalizowanego procesu wdrażania. App Hosting ma wiele 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 platformy w Cloud Build i wdraża skompilowane artefakty w Cloud Run i Cloud CDN. W przypadku wdrożeń z lokalnego źródła i wdrożeń z GitHuba stosowany jest ten sam proces kompilacji. Jeśli w projekcie znajduje się plik .gitignore, pliki i foldery wymienione w nim są wykluczane z wdrożenia.

Wdrożenie możesz przeprowadzić z lokalnego źródła za pomocą Firebaseinterfejsu wiersza poleceń lub Firebasekonsoli.

Wymagane uprawnienia i konfiguracja infrastruktury

Zarówno Firebase interfejs wiersza poleceń, jak i Firebase konsola korzystają z tej samej infrastruktury backendu do przechowywania i tworzenia archiwów źródłowych, dlatego w przypadku obu metod wdrażania obowiązują te same wymagania dotyczące uprawnień IAM.

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 uprawnieniach do Firebase App Hosting.

Uprawnienia dotyczące wstępnego wdrażania (pierwsze wdrożenie w lokalizacji)

Gdy po raz pierwszy zainicjujesz wdrażanie lokalnego źródła w lokalizacji projektu, 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 IAM. Użytkownik z podstawową rolą Edytujący lub Przeglądający nie może przeprowadzić tej początkowej konfiguracji i zostanie zablokowany.

Wymagane uprawnienia do konfiguracji wstępnej obejmują:

  • Włącz interfejs Storage API: serviceusage.services.enable
  • Utwórz zasobnik źródłowy: storage.buckets.createstorage.buckets.list
  • Skonfiguruj agenta usługi: resourcemanager.projects.setIamPolicy przyznaj Hosting dostęp do odczytu (roles/storage.objectViewer), aby mógł pobierać przesłany kod podczas kompilacji.

W przypadku początkowego wdrożenia zasobnik GCS jest tworzony z 30-dniowym cyklem życia, po którym jest usuwany. Możesz jednak zarządzać tym okresem w konsoli Cloud w sekcji Cloud Storage –> Zasobniki –> Cykl życia –> Reguły. Zobacz zarządzanie cyklami życia obiektów.

Uprawnienia do kolejnych wdrożeń (po zainicjowaniu lokalizacji)

Po zainicjowaniu zasobnika źródłowego i powiązań ról w lokalizacji (w ramach początkowego wdrożenia za pomocą interfejsu CLI lub konfiguracji w konsoli) zwykli programiści, edytujący lub App Hosting administratorzy mogą wdrażać aktualizacje. Uprawnienia administracyjne na poziomie projektu nie są wymagane w przypadku rutynowych wdrożeń.

Uprawnienia do aktywnego wdrażania obejmują:

  • Weryfikacja zasobnika: storage.buckets.list
  • Prześlij archiwum źródłowe: storage.objects.create
  • Wywoływanie kompilacji i wdrażania: standardowe uprawnienia Hosting (apphosting.builds.createapphosting.rollouts.create)

Wdrażanie ze źródła za pomocą interfejsu wiersza poleceń Firebase

Firebase Interfejs CLI w wersji 14.4.0 i nowszych 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 zabezpieczeń lub funkcjami) i chcesz wdrożyć aplikację internetową oraz usługi backendu za pomocą jednego polecenia interfejsu wiersza poleceń.

Wymagania wstępne

  • Projekty muszą być objęte abonamentem Blaze.
  • Musisz mieć narzędzia Firebase w wersji 14.4.0 lub nowszej.

Etapy wdrażania

  1. Uruchom polecenie firebase init apphosting w katalogu projektu lokalnego.
  2. Gdy pojawi się prośba, kliknij Użyj istniejącego projektu i wybierz docelowy projekt w Firebase.
  3. Wybierz nowy lub istniejący backend, do którego chcesz wdrożyć aplikację. Ten krok konfiguruje Hostingwdrożenia w lokalnym katalogu i wyświetla prośbę o podanie szczegółów konfiguracji:
    • Identyfikator backendu, na którym ma zostać wdrożona usługa
    • Region, w którym ma zostać wdrożony nowy backend
    • Ścieżka do katalogu głównego kodu aplikacji
    • Preferowane środowisko wykonawcze Node.js. Wybór środowiska wykonawczego z określoną wersją umożliwia automatyczne stosowanie poprawek zabezpieczeń w środowisku bazowym dzięki funkcji Automatyczne aktualizacje obrazu bazowego.
  4. App Hosting zapisuje Twoje preferencje wdrażania w firebase.json, tworząc plik w Twoim 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ładowy plik 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)

FirebaseKonsola udostępnia graficzny interfejs do wdrażania aplikacji przez bezpośrednie przesyłanie skompresowanego archiwum źródłowego. Jest to alternatywa dla procesu połączenia z GitHubem w przypadku, gdy nie chcesz korzystać z GitHuba lub wolisz inną konfigurację CI/CD.

Przesyłanie archiwum można przeprowadzić podczas początkowego tworzenia backendu lub podczas tworzenia ręcznego wdrażania w istniejącym backendzie, w tym w backendach pierwotnie wdrożonych za pomocą interfejsu Firebase CLI.

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.

Etapy wdrażania

Opcja A. Podczas wstępnego wprowadzania backendu
  1. Wybierz źródło: w kreatorze tworzenia backendu w kroku „Jak chcesz zaimportować aplikację?” kliknij Prześlij plik ZIP.
  2. Przygotowanie do wdrożenia: kliknięcie „Dalej” uruchamia proces przygotowania w tle, który kolejno włącza interfejs Storage API, zapewnia prawidłową konfigurację ról i wstawia zasobnik. W interfejsie wyświetla się spinner wczytywania z dynamicznymi komunikatami o stanie: „Włączanie interfejsu API…” „Sprawdzanie uprawnień…” i „Przygotowywanie zasobnika…”.
    • Obsługa błędów i mechanizmy ochronne: jeśli którykolwiek z etapów przygotowania zakończy się niepowodzeniem (np. użytkownik, który nie jest właścicielem, otrzyma 403 PERMISSION_DENIED z powodu niewystarczających uprawnień IAM), w interfejsie wyświetli się specjalne ostrzeżenie z instrukcją skontaktowania się z właścicielem projektu. Nawigacja krokowa jest zablokowana, a przycisk „Dalej” i ostateczny przycisk „Zakończ i wdroż” pozostają nieaktywne, dopóki problem nie zostanie rozwiązany.
  3. Prześlij pliki: po zakończeniu przygotowywania wybierz lub przeciągnij plik archiwum do komponentu przesyłania plików.
  4. Skonfiguruj ustawienia: określ główny katalog aplikacji (domyślnie /).

  5. Kliknij Zakończ i wdroż: samodzielny przycisk „Zakończ” jest wyłączony w przypadku przesyłania plików ZIP, ponieważ przesłanie archiwum jest jednorazową czynnością i musi być natychmiast kontynuowane przez wdrożenie, aby zapewnić działanie backendu.

Opcja B. Tworzenie wdrożenia ręcznego
  1. Otwórz okno: na panelu Hosting kliknij Utwórz wdrożenie.
  2. Wybierz źródło: w prowadnicy kroków okna dialogowego kliknij 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 uruchamia ten sam proces przygotowania w tle („Włączanie interfejsu API…”, „Sprawdzanie uprawnień…” i „Przygotowywanie zasobnika…”. Po zakończeniu przeciągnij lub wybierz plik archiwum za pomocą narzędzia do przesyłania, określ główny katalog aplikacji i kliknij Wdróż, aby rozpocząć kompilację i wdrożenie.

Wdróż z użyciem Terraform

Jeśli potrzebujesz większej kontroli nad procesem kompilacji i wdrażanym środowiskiem, możesz wdrożyć usługę za pomocą Terraform. Terraform umożliwia definiowanie zasobów App Hosting i zarządzanie nimi za pomocą deklaratywnych plików konfiguracji, a także wdrażanie własnego wstępnie skompilowanego obrazu kontenera bezpośrednio w App Hosting zamiast polegać na App Hosting w zakresie kompilowania z kodu źródłowego.

Jeśli dopiero zaczynasz korzystać z Terraform, przeczytaj artykuł Pierwsze kroki z Terraform i Firebase. Jeśli znasz już Terraform, możesz zacząć od przykładowych plików konfiguracji i innych App Hostingzasobó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 potem przejście na zautomatyzowany potok CI/CD, gdy będziesz gotowy.

Wdrażanie za pomocą narzędzi opartych na AI

22 marca 2027 wycofamy Firebase Studio. Chociaż nie wpłynie to na Twoje App Hostingbackendy, przycisk OpublikujFirebase Studio zostanie wycofany. Aby nadal publikować aktualizacje bez zmiany adresu URL, przenieś projekt. Dowiedz się, jak przeprowadzić migrację