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

App Hosting obsługuje złożoną serię zadań wykonywanych w tle, aby uprościć wdrażanie aplikacji. Na tej stronie opisujemy najważniejsze części tego przepływu zadań, podajemy informacje o miejscach, w których możesz dostosować przepływ do potrzeb swojej aplikacji.

Kluczowe terminy i definicje

Aby zrozumieć szczegóły przepływu App Hosting, warto zdefiniować niektóre terminy. Oto podstawowe kluczowe terminy:

Architektura Google Cloud i App Hosting

App Hosting koordynuje zestaw usług Google Cloud, dzięki czemu możesz wdrażać, udostępniać i monitorować swoją aplikację internetową. Aplikacje są kompilowane za pomocą Cloud Build, udostępniane w Cloud Run, i buforowane w Cloud CDN. Zintegrowane usługi, takie jak Cloud Secret Manager, chronią Twoje klucze interfejsu API.

Schemat architektury opisanej na tej stronie.

  1. Gdy zatwierdzenie zostanie przesłane do gałęzi aktywnej, Google Cloud Developer Connect wyśle zdarzenie do Firebase App Hosting.
  2. W odpowiedzi na to zdarzenie Firebase App Hosting utworzy nową kompilację dla backendu połączonego z repozytorium.
    1. Najpierw Firebase App Hosting utworzy nową kompilację Cloud Build dla Twojego zatwierdzenia. W tym zadaniu pakiety Google Cloud określają, jakiego frameworka używasz w aplikacji, aby utworzyć kontener i konfigurację (w tym zmienne środowiskowe, obiekty tajne, minimalną lub maksymalną liczbę instancji, pamięć współbieżną, procesor i konfigurację VPC), która pasuje do Twojej aplikacji. Więcej informacji znajdziesz w artykule Proces kompilacjiApp Hosting.
    2. Gdy zadanie Cloud Build zostanie ukończone, Twój kontener zostanie zapisany w Artifact Registry repozytorium przeznaczonym dla Firebase App Hosting. Firebase App Hosting doda wtedy nową wersję Cloud Run do usługi Cloud Run, używając Twojego obrazu i konfiguracji.
  3. Gdy wersja Cloud Run zostanie ukończona i zweryfikowana jako prawidłowa, Firebase App Hosting zmodyfikuje konfigurację ruchu, aby kierować wszystkie nowe żądania do nowej wersji Cloud Run. W tym momencie wdrożenie jest zakończone.
  4. Gdy żądanie zostanie wysłane do witryny hostowanej w Firebase App Hosting, żądanie zostanie obsłużone przez system równoważenia obciążenia Google Cloud z włączoną usługą Cloud CDN. Żądania niebuforowane są wysyłane do usługi Cloud Run. Wskazówki dotyczące optymalizacji wydajności za pomocą Cloud CDN znajdziesz w artykule Buforowanie treści aplikacji.

Integracja z frameworkiem

App Hosting zapewnia wstępnie skonfigurowaną obsługę kompilacji i wdrażania aplikacji internetowych opracowanych w tych frameworkach:

  • Next.js 13.5.x i nowsze
  • Angular 18.2.x i nowsze

Szczegółowe informacje o konkretnych wersjach i poziomach pomocy znajdziesz w harmonogramach pomocy dla pomocy technicznej.

Oprócz Next.js i Angulara App Hosting obsługuje też każdy framework internetowy, który może generować dane wyjściowe zgodne ze specyfikacją pakietu wyjściowego. Więcej informacji o frameworkach, adapterach frameworków i powiązanych narzędziach obsługiwanych przez App Hosting znajdziesz w artykule Frameworks and tooling for App Hosting.

Jak działa integracja repozytorium App Hosting

Ważne połączenie między repozytorium GitHub a App Hosting backendem jest obsługiwane przez Developer Connect, platformę łączności Google Cloud dla zewnętrznych narzędzi DevOps. Gdy skonfigurujesz to połączenie (zwykle podczas tworzenia backendu App Hosting), przepływ pracy interfejsu Developer Connect przeprowadzi Cię przez instalację aplikacji Firebase GitHub. Najważniejsze kroki w tym procesie to:

  1. Przyznajesz Developer Connect rolę administratora Secret Manager. Umożliwia to systemowi bezpieczne przechowywanie danych logowania jako "obiektów tajnych" w Cloud Secret Manager.
  2. Autoryzujesz aplikację Firebase GitHub, aby miała dostęp do Twojego repozytorium GitHub. Aby uzyskać dostęp do odpowiedniego repozytorium, możesz potrzebować dodatkowych uprawnień GitHub.
  3. Developer Connect przechowuje dedykowany token autoryzacji GitHub w repozytorium Secret Manager Twojego projektu. Nie modyfikuj ani nie usuwaj tego tokena.

Dodatkowo App Hosting integruje się z interfejsem GitHub Checks API, aby zapewnić sprawdzanie wdrożeń. Dzięki temu możesz wyświetlać stan wdrożenia w GitHubie i debugować proces wdrażania w przypadku wystąpienia błędów.

Integracja z Firebase i innymi usługami Google

App Hosting konfiguruje środowiska kompilacji i środowiska wykonawcze, dzięki czemu możesz zainicjować pakiet Firebase Admin SDK za pomocą domyślnego uwierzytelniania aplikacji Google. Dzięki temu backend może komunikować się z innymi usługami Firebase zarówno podczas kompilacji, jak i w czasie działania. Więcej informacji o inicjowaniu aplikacji i innych tematach związanych z pakietem Firebase SDK znajdziesz w artykule Integrowanie pakietów Firebase SDK w aplikacji internetowej.

App Hosting lokalizacje

App Hosting tworzy zasoby backendu w określonej lokalizacji, zwanej regionem głównym. Podczas gdy App Hosting integruje się z globalną siecią CDN, aby zapewnić szybkie dostarczanie treści, treści niebuforowane są udostępniane z regionu głównego aplikacji. Ta elastyczność w zakresie lokalizacji aplikacji internetowej ma kluczowe zalety:

  • Lepsza wydajność i mniejsze opóźnienia dzięki zbliżeniu danych do użytkowników.
  • Katastrofalna awaria App Hosting w jednym regionie nie wpłynie na aplikacje internetowe wdrożone w innych regionach.

Podczas tworzenia backendu z konsoli lub interfejsu wiersza poleceń możesz wybrać dowolny z tych regionów:App HostingFirebaseFirebase

  • us-central1 (Iowa)
  • us-east4 (N. Wirginia)
  • us-east5 (Columbus)
  • asia-east1 (Tajwan)
  • asia-southeast1 (Singapur)
  • europe-west4 (Holandia)

Konto usługi backendu App Hosting

Podczas kompilacji i w czasie działania backend App Hosting uwierzytelnia się w innych usługach Google za pomocą konta usługi. Domyślne konto usługi do tych celów jest tworzone przy pierwszym włączeniu App Hosting w projekcie w Firebase:

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

To konto usługi domyślnie dotyczy wszystkich backendów i ma minimalny zestaw uprawnień, które umożliwiają kompilowanie, uruchamianie i monitorowanie aplikacji. Ma też uprawnienia do uwierzytelniania pakietu Admin SDK za pomocą domyślnego uwierzytelniania aplikacji, co umożliwia wykonywanie operacji takich jak wczytywanie danych z Cloud Firestore. Zobacz Role FirebaseApp Hosting.

Jeśli aplikacja musi wchodzić w interakcje z dodatkowymi usługami Google podczas kompilacji lub z działającego backendu, możesz dostosować domyślne konto usługi, dodając role. Jeśli na przykład aplikacja wymaga uprawnień do Vertex AI, może być konieczne dodanie roles/aiplatform.user lub innej powiązanej roli.