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 itu, memberikan informasi tentang titik di mana Anda mungkin ingin menyesuaikan alur bergantung pada kebutuhan aplikasi Anda.

Dukungan framework

App Hosting menyediakan dukungan build dan deploy yang tidak diperlukan untuk aplikasi Web yang dikembangkan dalam kerangka kerja ini:

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

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

Adaptor framework App Hosting memiliki dua peran utama:

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

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

Cara kerja integrasi repositori App Hosting

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

  1. Anda memberikan izin kepada Developer Connect Admin Secret Manager peran. Hal ini memungkinkan sistem menyimpan kredensial dengan aman sebagai "rahasia" inci Cloud Secret Manager.
  2. Anda memberi otorisasi aplikasi GitHub Firebase untuk mengakses GitHub Anda repositori Anda.
  3. Developer Connect menyimpan token otorisasi GitHub di repositori {i>secret manager<i} proyek; jangan ubah atau hapus token ini.

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

Integrasi dengan Firebase dan layanan Google lainnya

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

Akun layanan backend App Hosting

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

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

Akun layanan ini berlaku untuk semua backend secara default dan memiliki jumlah yang memungkinkan Anda membangun, menjalankan, dan memantau aplikasi. Model ini juga memiliki izin untuk mengautentikasi Admin SDK dengan Kredensial Default Aplikasi, untuk menjalankan operasi seperti memuat data dari Cloud Firestore. Lihat Peran Firebase App Hosting.

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

Istilah dan definisi utama

  • Backend: Kumpulan resource terkelola yang digunakan Hosting Aplikasi buat 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, itu 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 Intermittent connection error pesan di URL aplikasi Anda. Perbaikan akan tersedia di rilis selanjutnya.
  • Header Cache-Control diubah untuk membatasi cache CDN hingga 60 detik; di di masa mendatang, saat App Hosting memiliki kemampuan untuk diterapkan, batas ini akan dicabut.
  • Header Set-Cookie dihapus dari respons yang ditayangkan melalui Pesawat data App Hosting. Perbaikan akan tersedia di rilis selanjutnya.
  • File statis yang tidak di-cache disajikan dari Cloud Run; di rilis berikutnya, mereka akan disimpan dan disajikan dari asal App Hosting untuk performa yang lebih baik.
  • SKU App Hosting mungkin tidak ditampilkan di halaman penggunaan backend di melalui Firebase console. Fitur tersebut akan tersedia di rilis selanjutnya.
  • Firebase console mungkin sesekali menampilkan pesan "build tidak ditemukan dan tidak valid" saat pembuatan backend.
  • 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, menempatkannya ke dalam proyek terpisah.
  • Saat ini, hanya region us-central1 yang didukung.