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 tempat Anda mungkin ingin menyesuaikan alur bergantung pada kebutuhan aplikasi Anda.
Integrasi framework
App Hosting menyediakan dukungan build dan deployment yang telah dikonfigurasi sebelumnya untuk aplikasi Web yang dikembangkan dalam framework berikut:
- Next.js 13+
- 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 tidak memiliki file kunci, App Hosting akan gagal
mem-build dan menjalankan aplikasi Anda. Anda dapat membuat package-lock.json
dengan menjalankan npm
install
di direktori root.
Adaptor framework
Adaptor framework App Hosting memiliki dua peran utama:
- Alat ini mengurai kode sumber dan file konfigurasi khusus framework (seperti
next.config.js
) dan menghasilkan paket output yang dapat diproses oleh infrastruktur Hosting Aplikasi lainnya. - Alat ini menjalankan perintah build aplikasi 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. App Hosting akan mencoba build dengan perintah build
kustom, tetapi tidak dapat menjamin keberhasilan dengan andal.
Sumber untuk adaptor Next.js dan Angular tersedia di firebase-framework-tools.
Framework lainnya
Selain Nextjs dan Angular, Hosting Aplikasi juga mendukung framework web apa pun yang dapat memberikan output build yang cocok dengan spesifikasi paket output kami. Penulis framework dapat memanfaatkan spesifikasi paket output untuk memastikan framework mereka didukung oleh Hosting Aplikasi.
Jika ingin framework tambahan didukung, Anda dapat membuat adaptor, atau menghubungi pemelihara framework untuk mengonversi output build menjadi format Hosting Aplikasi. Adaptor Nextjs dan Angular adalah contoh referensi yang baik bagi siapa saja yang membuat adaptor.
Framework yang didukung dapat ditemukan di Firebase Open Source.
Cara kerja integrasi repositori App Hosting
Koneksi penting antara repositori GitHub dan backend App Hosting ditangani oleh Developer Connect, platform konektivitas Google Cloud untuk alat DevOps eksternal. Selama pembuatan backend App Hosting, alur kerja UI Developer Connect akan memandu Anda menginstal aplikasi GitHub Firebase. Langkah-langkah utamanya dalam proses ini adalah:
- Anda memberikan peran Secret Manager Admin ke Developer Connect. Hal ini memungkinkan sistem menyimpan kredensial dengan aman sebagai "secret" di Cloud Secret Manager.
- Anda memberi otorisasi ke aplikasi GitHub Firebase untuk mengakses repositori GitHub Anda.
- Developer Connect menyimpan token otorisasi GitHub khusus di repositori secret manager project Anda; jangan ubah atau hapus token ini.
Selain itu, App Hosting terintegrasi dengan GitHub checks API untuk memberikan pemeriksaan 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 begitu, backend Anda dapat berkomunikasi dengan produk Firebase lainnya selama build dan deployment.
Lokasi App Hosting
Deployment App Hosting membuat resource backend Anda di lokasi tertentu. Fleksibilitas lokasi aplikasi web Anda ini memiliki keunggulan utama:
- Peningkatan performa dan pengurangan latensi dengan mendekatkan data secara geografis ke pengguna Anda.
- Kegagalan besar untuk App Hosting di satu region tidak akan memengaruhi aplikasi web yang di-deploy di region lain.
Anda dapat memilih salah satu region ini saat membuat backend App Hosting dari konsol atau CLI Firebase:
us-central1
(Iowa)asia-east1
(Taiwan)europe-west4
(Belanda)
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 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 serangkaian 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 App Hosting Firebase.
Jika aplikasi Anda perlu berinteraksi dengan layanan Google tambahan 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 App Hosting untuk mem-build dan menjalankan aplikasi web Anda.
- Peluncuran: Versi tertentu dari aplikasi live Anda, yang ditautkan ke commit git.
- Cabang aktif: Cabang repositori GitHub yang di-deploy ke URL aktif Anda. Sering kali, ini adalah cabang tempat branch fitur atau cabang pengembangan digabungkan.
Masalah umum dan batasan
Pratinjau App Hosting memiliki beberapa batasan umum:
- Dalam beberapa kasus, backend App Hosting dapat menampilkan
pesan
Intermittent connection error
di URL aplikasi Anda. Perbaikan akan tersedia di rilis berikutnya. - Header Cache-Control diubah untuk membatasi cache CDN hingga 60 detik; pada masa mendatang, saat App Hosting memiliki kemampuan untuk menghapus cache dengan cepat saat di-deploy, batas ini akan dicabut.
- Pengoptimalan gambar dilakukan di Cloud Run secara default, dan gambar yang dioptimalkan tidak dipertahankan—sebaiknya nonaktifkan pengoptimalan gambar atau tentukan loader secara manual hingga solusi yang lebih baik tersedia.
- File statis yang tidak di-cache ditayangkan dari Cloud Run; dalam rilis berikutnya, file tersebut akan disimpan dan ditayangkan dari origin App Hosting untuk performa yang lebih baik.
- App Hosting SKU mungkin tidak ditampilkan di halaman penggunaan backend di konsol Firebase. Fitur ini akan tersedia di rilis selanjutnya.
- Konsol Firebase mungkin sesekali menampilkan error "build tidak ditemukan dan tidak valid" saat pembuatan backend.
- Saat ini, semua backend dalam project yang sama menggunakan organisasi/akun GitHub yang sama. Keduanya dapat dihubungkan ke repositori yang berbeda dalam organisasi/akun tersebut. Untuk membuat backend yang terhubung ke akun GitHub yang berbeda, tempatkan backend tersebut dalam project terpisah.
- Middleware, penulisan ulang, dan pengalihan Next.js dijalankan di Cloud Run, di belakang CDN. Karena tidak akan melindungi respons yang di-cache, pastikan untuk menetapkan perintah kontrol yang sesuai untuk konten yang Anda render.