App Hosting wykonuje złożone zadania w tle, aby uprościć wdrażanie aplikacji. Na tej stronie opisujemy najważniejsze etapy tego procesu i podajemy informacje o punktach, w których warto dostosować przepływ w zależności od potrzeb aplikacji.
Obsługa platformy
App Hosting zapewnia niewymagającą konfiguracji obsługę tworzenia i wdrażania aplikacji internetowych utworzonych na tych platformach:
- Next.js w wersji 13 lub nowszej
- Angular 17.2 lub nowszy
App Hosting określa, z której platformy korzystasz, sprawdzając plik package-lock.json
lub inny plik blokady w Twoim repozytorium. Jeśli spróbujesz wdrożyć aplikację w Node.js, w której brakuje pliku blokady, App Hosting nie będzie skompilować i uruchomić Twojej aplikacji. Możesz utworzyć package-lock.json
, uruchamiając npm
install
w katalogu głównym.
Adaptery platformy App Hosting mają 2 kluczowe role:
- Analizują one kod źródłowy i wszelkie pliki konfiguracyjne związane z platformą (np.
next.config.js
), by poznać skonfigurowane działanie aplikacji. - Uruchomiono polecenie kompilacji aplikacji, aby wygenerować zasoby statyczne i utworzyć zoptymalizowaną wersję aplikacji pod kątem środowiska produkcyjnego.
Adaptery platformy tworzą aplikację w Node.js za pomocą interfejsu npm run build
, który najlepiej działa z domyślnymi skryptami kompilacji dla każdej platformy: next build
w przypadku Next.js i ng build
w przypadku Angular. App Hosting będzie próbować wykonywać kompilacje przy użyciu niestandardowych poleceń kompilacji, ale nie może zagwarantować sukcesu.
Jak działa integracja repozytorium App Hosting
Ważne połączenie między repozytorium GitHub a backendem App Hosting jest obsługiwane przez Developer Connect – platformę łączności Google Cloud dla zewnętrznych narzędzi DevOps. Podczas tworzenia backendu App Hosting przepływ pracy w interfejsie Developer Connect przeprowadzi Cię przez proces instalowania aplikacji Firebase na GitHubie. Kluczowe kroki tego procesu:
- W tym celu należy przypisać dla Developer Connect rolę administratora usługi Secret Manager. Dzięki temu system będzie mógł bezpiecznie przechowywać dane logowania jako „obiekty tajne” w usłudze Cloud Secret Manager.
- Autoryzujesz aplikację Firebase GitHub do dostępu do repozytorium GitHub.
- Developer Connect przechowuje specjalny token autoryzacji GitHub w repozytorium menedżera obiektów tajnych Twojego projektu. Nie modyfikuj ani nie usuwaj tego tokena.
Dodatkowo App Hosting integruje się z interfejsem GitHub check API, aby umożliwić kontrolę wdrożeń. Dzięki temu możesz sprawdzić stan wdrożenia na GitHubie i debugować proces wdrażania w przypadku wystąpienia błędów.
Integracja z Firebase i innymi usługami Google
App Hosting konfiguruje zarówno środowisko kompilacji, jak i środowiska wykonawczego, więc możesz zainicjować pakiet SDK Firebase Admin za pomocą domyślnych danych logowania aplikacji Google. Dzięki temu Twój backend może komunikować się z innymi usługami Firebase zarówno podczas kompilacji, jak i wdrażania.
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, gdy po raz pierwszy włączasz App Hosting w projekcie Firebase:
firebase-app-hosting-compute@PROJECT ID.iam.gserviceaccount.com
To konto usługi domyślnie obowiązuje we wszystkich backendach i ma minimalny zestaw uprawnień umożliwiających kompilowanie, uruchamianie i monitorowanie aplikacji. Ma również uprawnienia do uwierzytelniania pakietu Admin SDK za pomocą domyślnych danych logowania aplikacji na potrzeby wykonywania operacji takich jak wczytywanie danych z Cloud Firestore. Zobacz role w Firebase App Hosting.
Jeśli aplikacja musi korzystać z usług dodatkowych Google w czasie kompilacji lub z działającego backendu, możesz dostosować domyślne konto usługi, dodając role. Jeśli na przykład Twoja aplikacja wymaga uprawnień do Vertex AI, konieczne może być dodanie roli roles/aiplatform.user
lub innej powiązanej roli.
Najważniejsze terminy i ich definicje
- Backend: zbiór zarządzanych zasobów tworzonych przez App Hosting do kompilowania i uruchamiania Twojej aplikacji internetowej.
- Wdrożenie: konkretna wersja opublikowanej aplikacji powiązana z zatwierdzeniem Git.
- Gałąź aktywny: gałąź repozytorium GitHub, która jest wdrażana pod adresem URL wersji aktywnej. Często jest to gałąź, z którą scalone są gałęzie cech lub gałęzi programowania.
Znane problemy i ograniczenia
Wersja testowa App Hosting ma kilka znanych ograniczeń:
- Optymalizacja obrazów nie jest jeszcze dostępna.
- W niektórych przypadkach backend App Hosting może zwracać wiadomości
Intermittent connection error
pod adresem URL Twojej aplikacji. Poprawka zostanie udostępniona w kolejnej wersji. - Nagłówki pamięci podręcznej są modyfikowane, by ograniczyć pamięci podręczne CDN do 60 sekund. W przyszłości, gdy App Hosting będzie mógł szybko wyczyścić pamięć podręczną podczas wdrażania, ten limit zostanie zniesiony.
- Niebuforowane pliki statyczne są przesyłane poza Cloud Run. W późniejszych wersjach będą przechowywane i udostępniane z pierwotnego źródła App Hosting, aby zapewnić większą wydajność.
- Subdomeny z symbolem wieloznacznym będą dostępne w nadchodzących wersjach.
- Kody SKU App Hosting nie mogą być wyświetlane na stronie wykorzystania backendu w konsoli Firebase. Będą one dostępne w kolejnej wersji.
- Podczas tworzenia backendu konsola Firebase może okresowo wyświetlać błąd „Nie znaleziono kompilacji i jest ona nieprawidłowa”.
- Projekty z zagnieżdżonymi plikami
package.json
nie są obecnie obsługiwane niezależnie od tego, czy usługaroot\_directory
została skonfigurowana w konsoli Firebase czy za pomocą interfejsu wiersza poleceń. Poprawka zostanie udostępniona w kolejnej wersji. - 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ść je w osobnych projektach.
- Obecnie obsługiwany jest tylko region
us-central1
.