Memahami Hosting Aplikasi dan cara kerjanya

App Hosting menangani serangkaian tugas latar belakang yang kompleks untuk menyederhanakan deployment aplikasi Anda. Halaman ini menjelaskan bagian-bagian penting dari alur tugas tersebut, yang memberikan informasi tentang titik-titik yang memungkinkan Anda menyesuaikan alur tersebut, bergantung pada kebutuhan aplikasi.

Dukungan framework

App Hosting menyediakan dukungan build dan deploy yang tidak memerlukan konfigurasi untuk aplikasi Web yang dikembangkan dalam framework ini:

  • Next.js 13 atau yang lebih baru
  • Angular 17.2+

App Hosting mengidentifikasi framework yang Anda gunakan dengan memeriksa file package-lock.json atau file kunci lainnya di repositori Anda. Jika Anda mencoba men-deploy aplikasi Node.js yang file kunci tidak ada, App Hosting akan gagal mem-build dan menjalankan aplikasi. Anda dapat membuat package-lock.json dengan menjalankan npm install di direktori root.

Adaptor framework App Hosting memiliki dua peran utama:

  1. Alat tersebut akan mengurai kode sumber Anda dan file konfigurasi khusus framework (seperti next.config.js) untuk memahami perilaku aplikasi yang dikonfigurasi.
  2. Mereka menjalankan perintah build aplikasi Anda untuk menghasilkan aset statis dan membuat versi aplikasi yang dioptimalkan untuk produksi.

Adaptor framework mem-build aplikasi Node.js Anda dengan npm run build, yang berfungsi paling baik dengan skrip build default untuk setiap framework: next build untuk Next.js dan ng build untuk Angular. Hosting Aplikasi akan mencoba membangun dengan perintah build kustom, tetapi tidak dapat menjamin keberhasilan secara bergantung.

Cara kerja integrasi repositori App Hosting

Hubungan penting antara repositori GitHub dan backend App Hosting ditangani oleh Developer Connect, yakni platform konektivitas Google Cloud untuk alat DevOps eksternal. Selama pembuatan backend App Hosting, alur kerja UI Developer Connect akan memandu Anda melakukan penginstalan aplikasi GitHub Firebase. Langkah-langkah utama dalam proses ini adalah:

  1. Anda memberikan peran Secret Manager Admin kepada Developer Connect. Dengan demikian, sistem dapat menyimpan kredensial dengan aman sebagai "rahasia" di Cloud Secret Manager.
  2. Anda mengizinkan aplikasi GitHub Firebase untuk mengakses repositori GitHub Anda.
  3. Developer Connect menyimpan token otorisasi GitHub khusus di repositori secret manager project Anda; jangan mengubah atau menghapus token ini.

Selain itu, App Hosting terintegrasi dengan GitHub Check API untuk memeriksa peluncuran. Pemeriksaan ini memungkinkan Anda melihat status peluncuran di GitHub dan men-debug proses deployment jika terjadi error.

Integrasi dengan Firebase dan layanan Google lainnya

App Hosting menyiapkan lingkungan build dan runtime sehingga Anda dapat melakukan inisialisasi Firebase Admin SDK dengan Kredensial Default Aplikasi Google. Dengan demikian, backend Anda dapat berkomunikasi dengan produk Firebase lainnya selama proses build dan deployment.

Akun layanan backend App Hosting

Selama pembuatan dan saat runtime, backend App Hosting Anda melakukan autentikasi dengan layanan Google lainnya menggunakan akun layanan. Akun layanan default untuk tujuan ini dibuat saat Anda pertama kali mengaktifkan App Hosting di project Firebase:

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

Akun layanan ini berlaku untuk semua backend secara default dan memiliki sekumpulan izin minimal untuk memungkinkan Anda mem-build, menjalankan, dan memantau aplikasi. Akun layanan ini juga memiliki izin untuk mengautentikasi Admin SDK dengan Kredensial Default Aplikasi, untuk melakukan operasi seperti memuat data dari Cloud Firestore. Lihat peran Firebase App Hosting.

Jika aplikasi Anda perlu berinteraksi dengan layanan Google tambahan baik pada waktu build atau dari backend yang berjalan, Anda dapat menyesuaikan akun layanan default dengan menambahkan peran. Misalnya, jika aplikasi Anda memerlukan izin untuk Vertex AI, Anda mungkin perlu menambahkan roles/aiplatform.user atau beberapa peran terkait.

Istilah dan definisi utama

  • Backend: Kumpulan resource terkelola yang dibuat oleh App Hosting untuk membangun dan menjalankan aplikasi web Anda.
  • Peluncuran: Versi tertentu dari aplikasi aktif Anda, yang ditautkan ke commit git.
  • Cabang live: Cabang repositori GitHub yang di-deploy ke URL aktif Anda. Sering kali, cabang ini adalah cabang tempat cabang fitur atau cabang pengembangan digabungkan.

Masalah umum dan batasan

Pratinjau App Hosting memiliki beberapa batasan umum:

  • Pengoptimalan gambar belum tersedia.
  • Dalam beberapa kasus, backend App Hosting dapat menampilkan pesan Intermittent connection error di URL aplikasi Anda. Perbaikan akan tersedia di rilis selanjutnya.
  • Header cache diubah untuk membatasi cache CDN hingga 60 detik; di masa mendatang, jika App Hosting memiliki kemampuan untuk menghapus cache dengan cepat saat deployment, batas ini akan dicabut.
  • File statis yang tidak di-cache akan disajikan di luar Cloud Run; dalam rilis berikutnya, file tersebut akan disimpan dan disajikan dari asal App Hosting untuk performa yang lebih baik.
  • Subdomain karakter pengganti sebagai domain kustom akan tersedia di rilis selanjutnya.
  • SKU App Hosting mungkin tidak ditampilkan pada halaman penggunaan backend di Firebase console. Fitur tersebut akan tersedia di rilis selanjutnya.
  • Firebase console mungkin sesekali menampilkan error "build tidak ditemukan dan tidak valid" pada pembuatan backend.
  • Project dengan file package.json bertingkat saat ini tidak didukung, terlepas dari apakah root\_directory dikonfigurasi dengan Firebase console atau CLI atau tidak. Perbaikan akan tersedia di rilis selanjutnya.
  • Saat ini, semua backend dalam project yang sama menggunakan org/akun GitHub. Mereka dapat dihubungkan ke repositori yang berbeda di bawah organisasi/akun tersebut. Untuk membuat backend yang terhubung ke akun GitHub yang berbeda, tempatkan backend di project terpisah.
  • Saat ini, hanya region us-central1 yang didukung.