Alternatywne sposoby wdrażania aplikacji do Hostingu aplikacji

Zazwyczaj zalecamy korzystanie z automatycznego wdrażania lub wdrażania wywoływanego ręcznie w Firebase konsoli. Możesz jednak potrzebować bardziej dostosowanego procesu wdrażania. App Hosting ma 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 z kodu źródłowego usługa App Hosting przesyła kod źródłowy do zasobnika Google Cloud Storage, uruchamia polecenie kompilacji platformy w usłudze Cloud Build i wdraża skompilowane artefakty w usłudze Cloud Run i Cloud CDN. W przypadku wdrożeń z lokalnego źródła stosowany jest ten sam proces kompilacji co w przypadku wdrożeń z GitHuba. Jeśli w projekcie znajduje się plik .gitignore, pliki i foldery wymienione w tym pliku są wykluczane z wdrożenia.

Możesz wdrożyć z lokalnego źródła za pomocą Firebaseinterfejsu wiersza poleceń lub Firebasekonsoli.

Wymagane uprawnienia i konfiguracja infrastruktury

Zarówno Firebase CLI, 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 wprowadzania (pierwsze wdrożenie w lokalizacji)

Gdy po raz pierwszy zainicjujesz wdrażanie lokalnego źródła w lokalizacji projektu, usługa Hosting musi udostępnić zasobnik GCS do przechowywania archiwów i przyznać agentowi usługi Hosting dostęp do tych archiwów. Ponieważ są to zadania administracyjne na poziomie projektu, wymagają uprawnień właściciela projektu lub administratora IAM. Użytkownik z podstawową rolą Edytujący lub Przeglądający nie może przeprowadzić tej wstępnej 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.create i storage.buckets.list
  • Skonfiguruj agenta usługi: resourcemanager.projects.setIamPolicy, aby przyznać Hosting dostęp do odczytu (roles/storage.objectViewer), dzięki czemu będzie 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 w CLI lub konfiguracji w konsoli), zwykli programiści, edytujący lub App Hostingadministratorzy 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
  • Tworzenie i wdrażanie reguł: standardowe uprawnienia Hosting (apphosting.builds.create i apphosting.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ą i usługi backendu za pomocą jednego polecenia CLI.

Wymagania wstępne

  • Twoje projekty muszą być objęte abonamentem Blaze.
  • Musisz używać narzędzi Firebase w wersji 14.4.0 lub nowszej.

Etapy wdrażania

  1. Uruchom firebase init apphosting w lokalnym katalogu projektu.
  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, na którym chcesz wdrożyć aplikację. Ten krok konfiguruje Hosting wdroż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 backend (jeśli tworzysz 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 aktualizacje obrazu podstawowego, które automatycznie stosują poprawki zabezpieczeń w środowisku bazowym.
  4. App Hosting zapisuje Twoje preferencje wdrożenia w firebase.json, tworząc plik 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ł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 interfejs graficzny 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 wdrażanych 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ę wskaźnik ładowania 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ą wyłączone do czasu rozwiązania problemu.
  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 istniejącego 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…”). 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 utworzonego obrazu kontenera bezpośrednio w App Hosting zamiast polegać na App Hosting w kompilowaniu 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 każdej chwili 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 na zautomatyzowany potok CI/CD, gdy będziesz gotowy.

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

22 marca 2027 wycofamy Firebase Studio. Nie wpłynie to na Twoje zaplecza App Hosting, ale przycisk Opublikuj w Firebase Studio zostanie wycofany. Aby nadal publikować aktualizacje bez zmiany adresu URL, przenieś projekt. Dowiedz się, jak przeprowadzić migrację