Dowiedz się, jak działa App Hosting i jak działa.

App Hosting wykonuje złożone zadania w tle, aby uprościć wdrażanie aplikacji. Na tej stronie opisujemy najważniejsze etapy tego procesu, podanie informacji o punktach, w których warto dostosować proces w zależności od potrzeb aplikacji.

Obsługa platformy

App Hosting zapewnia niewymagającą konfiguracji obsługę kompilacji i wdrażania aplikacji internetowych. które zostały opracowane w następujący sposób:

  • Next.js w wersji 13 lub nowszej
  • Angular 17.2 lub nowszy

App Hosting określa platformę, której używasz, sprawdzając package-lock.json lub inny plik blokady w repozytorium. Jeśli spróbujesz wdroży aplikację Node.js, w której brakuje pliku blokady, App Hosting nie będzie w stanie tego zrobić aby stworzyć i uruchomić aplikację. Możesz utworzyć package-lock.json, uruchamiając npm install w katalogu głównym.

Adaptery platformy App Hosting mają 2 kluczowe role:

  1. Analizują one kod źródłowy i wszystkie pliki konfiguracyjne związane z konfiguracją platformy (np. next.config.js), aby poznać skonfigurowane działanie aplikacji.
  2. Uruchamiają polecenie kompilacji aplikacji, aby wygenerować zasoby statyczne i utworzyć zoptymalizowana pod kątem produkcji.

Adaptery platformy służą do tworzenia aplikacji Node.js na platformie npm run build, która najlepiej działa z domyślnymi skryptami kompilacji dla każdej platformy: next build w przypadku Next.js oraz ng build w Angular. App Hosting spróbuje skompilować kompilację z kompilacją niestandardową poleceń, ale nie gwarantuje powodzenia.

Jak działa integracja repozytorium App Hosting

Ważne połączenie między repozytorium GitHub a App Hosting backend jest obsługiwany przez Developer Connect Platforma łączności Google Cloud na potrzeby zewnętrznych narzędzi DevOps. Podczas tworzenia backendu App Hosting Przepływ pracy w interfejsie Developer Connect przeprowadzi Cię przez proces instalacji aplikacji Firebase na GitHubie. Najważniejsze kroki tego procesu:

  1. Przyznajesz Developer Connect Administrator usługi Secret Manager rolę użytkownika. Dzięki temu system może bezpiecznie przechowywać dane logowania jako „obiekty tajne” cale Cloud Secret Manager:
  2. Autoryzujesz aplikację Firebase GitHub do dostępu do swojego GitHuba .
  3. Developer Connect przechowuje specjalny token autoryzacji GitHuba w Twoim repozytorium menedżera obiektów tajnych projektu; Nie modyfikuj ani nie usuwaj tego tokena.

Dodatkowo App Hosting integruje się z interfejsem API sprawdzania GitHub, aby zapewnić sprawdzić wdrożenia. Dzięki temu możesz sprawdzić stan wdrożenia w GitHub i debuguj proces wdrażania w przypadku wystąpienia błędów.

Integracja z Firebase i innymi usługami Google

App Hosting konfiguruje środowiska kompilacji i środowisko wykonawcze, dzięki czemu możesz zainicjowanie pakietu Firebase Admin SDK w Google; Domyślne dane logowania aplikacji. Dzięki temu backend może się komunikować z innymi usługami Firebase zarówno podczas tworzenia, jak i wdrażania.

Konto usługi backendu App Hosting

Podczas kompilacji i w czasie działania backend App Hosting uwierzytelnia się za pomocą z innymi usługami Google na koncie usługi. Domyślne konto usługi dla organizacji te cele są tworzone po pierwszym włączeniu usługi App Hosting w Projekt Firebase:

firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com

To konto usługi domyślnie stosuje się do wszystkich backendów i ma minimalny zestaw uprawnień do tworzenia, uruchamiania i monitorowania aplikacji. Oferuje również uprawnienia do uwierzytelnić pakiet Admin SDK za pomocą domyślnych danych logowania aplikacji, na przykład wykonując operacje takie jak wczytywanie danych z: Cloud Firestore. Zobacz Role App Hosting w Firebase.

Jeśli aplikacja musi wejść w interakcję z usługami dodatkowymi Google podczas tworzenia lub z działającego backendu możesz dostosować domyślne konto usługi, dodawania ról. Jeśli na przykład aplikacja wymaga uprawnień do Vertex AI, konieczne może być dodanie roles/aiplatform.user lub inne powiązane stanowiska.

Najważniejsze terminy i ich definicje

  • Backend: zbiór zarządzanych zasobów, które App Hosting które pozwalają tworzyć i uruchamiać Twoją aplikację internetową.
  • Wdrożenie: konkretna wersja opublikowanej aplikacji powiązana z zatwierdzeniem Git.
  • Gałąź Live: gałąź repozytorium GitHub, które jest wdrażane w adresu URL transmisji. Często jest to gałąź, w której występują gałęzie lub gałęzie programowania są scalane.

Znane problemy i ograniczenia

Podgląd wersji App Hosting ma pewne znane ograniczenia:

  • Usuwanie backendów nie działa.
  • Optymalizacja obrazów nie jest jeszcze dostępna.
  • W niektórych przypadkach backend App Hosting może zwrócić Intermittent connection error wiadomości pod adresem URL Twojej aplikacji. Poprawka będą dostępne w przyszłej wersji.
  • Nagłówki Cache-Control są modyfikowane, by ograniczyć pamięci podręczne CDN do 60 s. w gdy App Hosting będzie mieć możliwość szybkiego czyszczenia pamięci podręcznej ten limit zostanie zniesiony.
  • Nagłówki Set-Cookie są usuwane z odpowiedzi wyświetlanych przez Planeta danych App Hosting. Poprawka zostanie udostępniona w kolejnej wersji.
  • Niebuforowane pliki statyczne są udostępniane z Cloud Run; w w późniejszej wersji, będą przechowywane i udostępniane z punktu początkowego App Hosting , by uzyskać lepsze wyniki.
  • Kody SKU App Hosting mogą nie być wyświetlane na stronie wykorzystania backendu w Firebase. Będą one dostępne w kolejnej wersji.
  • Konsola Firebase może okresowo wyświetlać komunikat „Nie znaleziono kompilacji i jest nieprawidłowy” podczas tworzenia backendu.
  • Obecnie wszystkie backendy w tym samym projekcie korzystają z tej samej organizacji/konta GitHub. Można je połączyć z różnymi repozytoriami w tej organizacji lub tym koncie. Aby utworzyć backendy połączone z różnymi kontami GitHub, umieścić je w osobnych projektach.
  • Obecnie obsługiwany jest tylko region us-central1.
  • Oprogramowanie pośredniczące, przepisywanie i przekierowania Next.js jest wykonywane w Cloud Run za CDN. Nie chronimy pamięci podręcznej odpowiedzi, pamiętaj o ustawieniu odpowiednie dyrektywy dotyczące kontroli w przypadku renderowanych treści.