App Hosting obsługuje złożoną serię zadań w tle, aby uprościć wdrażanie aplikacji. Ta strona opisuje kluczowe części tego procesu, podając informacje o miejscach, w których warto go dostosować do potrzeb aplikacji.
Architektura Google Cloud i App Hosting
App Hosting steruje zestawem usług Google Cloud, aby umożliwić Ci wdrażanie, obsługę i monitorowanie aplikacji internetowej. Aplikacje są tworzone za pomocą Cloud Build, obsługiwane przez Cloud Run i przechowywane w pamięci podręcznej w Cloud CDN. Zintegrowane usługi, takie jak Cloud Secret Manager, zapewniają bezpieczeństwo kluczy interfejsu API.

- Gdy zatwierdzone zmiany zostaną przesłane do gałęzi produkcyjnej, Google Cloud Developer Connect wyśle zdarzenie do Firebase App Hosting.
- W odpowiedzi na to zdarzenie Firebase App Hosting rozpoczyna nowe wdrożenie dla każdego backendu połączonego z repozytorium.
- Firebase App Hosting tworzy nową wersję Cloud Build dla Twojego commita. W tym zadaniu pakiety kompilacji Google Cloud określają, której platformy używa Twoja aplikacja, aby utworzyć kontener i konfigurację (w tym zmienne środowiskowe, sekrety, minimalne lub maksymalne instancje, pamięć współbieżną, procesor i konfigurację VPC) odpowiednią dla Twojej aplikacji.
- Po zakończeniu zadania Cloud Build kontener jest przechowywany w repozytorium Artifact Registry przeznaczonym do Firebase App Hosting. Firebase App Hosting dodaje nową wersję Cloud Run do usługi Cloud Run, używając Twojego obrazu i konfiguracji. Gdy sprawdzisz, że wersja Cloud Run jest zdrowa, usługa Firebase App Hosting zmodyfikuje konfigurację ruchu, aby kierować wszystkie nowe żądania do nowej wersji Cloud Run. W tej chwili udostępnienie jest zakończone.
- Gdy żądanie jest wysyłane do witryny hostowanej w Firebase App Hosting, jest ono obsługiwane przez system równoważenia obciążenia Google Cloud z włączoną usługą Cloud CDN. Żądania nieprzechowywane w pamięci podręcznej są wysyłane do usługi Cloud Run.
Integracja z ramówką
App Hosting zapewnia wstępnie skonfigurowaną obsługę kompilacji i wdrażania aplikacji internetowych opracowanych w ramach tych frameworków:
- Next.js w wersji 13.5.x lub nowszej
- Angular w wersji 18.2.x lub nowszej
Szczegółowe informacje o konkretnych wersjach i poziomach pomocy znajdziesz w harmonogramie pomocy.
Oprócz Next.js i Angular App Hosting obsługuje też dowolną platformę internetową, która może wygenerować dane kompilacji zgodne z naszą specyfikacją pakietu danych wyjściowych. Więcej informacji o platformach, adapterach platform i powiązanych narzędziach obsługiwanych przez App Hosting znajdziesz w artykule Platformy i narzędzia dla App Hosting.
Jak działa integracja z repozitorium App Hosting
Ważne połączenie między repozytorium GitHub a backendem App Hosting obsługuje Developer Connect, czyli platforma Google Cloud do łączenia zewnętrznych narzędzi DevOps. Podczas tworzenia backendu App Hosting w interfejsie użytkownika Developer Connect przeprowadzi Cię przez proces instalacji aplikacji Firebase GitHub. Najważniejsze kroki w tym procesie to:
- przyznasz usłudze Developer Connect rolę Administratora usługi Secret Manager. Dzięki temu system może bezpiecznie przechowywać dane logowania jako „obiekty tajne” w usłudze Cloud Secret Manager.
- Autoryzujesz aplikację Firebase na GitHubie do dostępu do repozytorium GitHub.
- Usługa Developer Connect przechowuje w repozytorium usługi Secret Manager dedykowany token autoryzacji GitHub. Nie modyfikuj ani nie usuwaj tego tokena.
Dodatkowo App Hosting integruje się z interfejsem GitHub Checks API, aby sprawdzać wdrożenia. Dzięki temu możesz wyświetlić stan wdrażania w GitHub i debugować proces wdrażania w przypadku wystąpienia błędów.
Integracja z Firebase i innymi usługami Google
App Hosting konfiguruje środowisko kompilacji i środowisko uruchomieniowe, aby umożliwić inicjowanie pakietu Firebase Admin SDK za pomocą domyślnych danych logowania Google. Dzięki temu Twój backend może się komunikować z innymi usługami Firebase zarówno w czasie kompilacji, jak i wykonania. Więcej informacji o inicjowaniu aplikacji i innych tematach związanych z pakietem SDK Firebase znajdziesz w artykule Integracja pakietów SDK Firebase w aplikacji internetowej.
App Hosting lokalizacji
App Hosting tworzy zasoby backendu w określonej lokalizacji, zwanej regionem głównym. Aplikacja App Hosting integruje się z globalną usługą CDN, aby zapewnić szybkie dostarczanie treści, ale niewykorzystane treści są dostarczane z regionu podstawowego aplikacji. Ta elastyczność w lokalizacji aplikacji internetowej ma kluczowe zalety:
- Zwiększona wydajność i krótszy czas oczekiwania dzięki temu, że dane są geograficznie bliżej użytkowników.
- Katastrofalny błąd w usłudze App Hosting w jednym regionie nie wpłynie na aplikacje internetowe wdrożone w innych regionach.
Podczas tworzenia App Hosting backendu w konsoli lub w interfejsie wiersza poleceń Firebase możesz wybrać dowolny z tych regionów:
us-central1
(Iowa)asia-east1
(Tajwan)europe-west4
(Holandia)
App Hosting konto usługi w części backendowej,
Podczas kompilacji i w czasie wykonywania 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 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ń, aby umożliwić kompilowanie, uruchamianie i monitorowanie aplikacji. Ma też uprawnienia do uwierzytelniania pakietu Admin SDK za pomocą domyślnych danych logowania aplikacji, aby wykonywać operacje takie jak wczytywanie danych z Cloud Firestore. Zapoznaj się z rolami App Hosting w Firebase.
Jeśli aplikacja musi wchodzić w interakcje z dodatkowymi usługami Google w czasie kompilacji lub z uruchomionego backendu, możesz dostosować domyślne konto usługi, dodając role. Jeśli na przykład Twoja aplikacja wymaga uprawnień Vertex AI, konieczne może być dodanie roli roles/aiplatform.user
lub innej powiązanej roli.
Najważniejsze terminy i definicje
- Backend: zbiór zarządzanych zasobów, które App Hostingtworzy do tworzenia i uruchamiania aplikacji internetowej.
- Wdrażanie: konkretna wersja aplikacji, która jest połączona z commitem w Git.
- Gałąź na żywo: gałąź w repozytorium GitHub, która jest wdrażana do adresu URL na żywo. Często jest to gałąź, do której scalane są gałęzie funkcji lub gałęzie rozwoju.