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 memberikan 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 root.

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. App Hosting akan mencoba membangun dengan build kustom tetapi tidak dapat menjamin keberhasilan.

Cara kerja integrasi repositori App Hosting

Koneksi 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 inisialisasi 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 melakukan autentikasi dengan layanan Google lainnya dengan akun layanan. Akun layanan default untuk tujuan ini dibuat saat pertama kali Anda 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 jumlah yang memungkinkan Anda membangun, menjalankan, dan memantau aplikasi. Model ini juga memiliki izin untuk mengautentikasi Admin SDK dengan Kredensial Default Aplikasi, untuk melakukan operasi seperti memuat data dari Cloud Firestore. Lihat Peran App Hosting Firebase.

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 App Hosting 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:

  • Penghapusan backend tidak berhasil.
  • 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 menghapus cache dengan cepat di 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 dirilis setelahnya, item tersebut akan disimpan dan disajikan dari asal App Hosting untuk performa yang lebih baik.
  • SKU App Hosting mungkin tidak ditampilkan di halaman penggunaan backend di konsol Firebase. Fitur tersebut akan tersedia di rilis selanjutnya.
  • Konsol Firebase 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.
  • Middleware, penulisan ulang, dan pengalihan Next.js dieksekusi di Cloud Run, di belakang CDN. Karena ini tidak akan melindungi {i>cache<i} ke depannya, pastikan untuk menetapkan perintah kontrol yang sesuai untuk konten yang sedang dirender.