Sebagian besar waktu, sebaiknya gunakan peluncuran otomatis atau peluncuran yang dipicu secara manual dari Firebase console. Namun, Anda mungkin memiliki penggunaan untuk alur deployment yang lebih disesuaikan. App Hosting memiliki beberapa opsi untuk deployment kustom.
Men-deploy dari sumber
Men-deploy dari sumber memungkinkan Anda mengirimkan kode sumber dan konfigurasi aplikasi langsung ke App Hosting tanpa memerlukan koneksi GitHub yang persisten.
Saat men-deploy dari sumber, App Hosting mengupload kode sumber Anda ke bucket
Google Cloud Storage, menjalankan perintah build framework Anda di
Cloud Build, dan men-deploy artefak yang dikompilasi ke Cloud Run dan
Cloud CDN. Proses build yang sama digunakan untuk deployment sumber lokal
seperti deployment GitHub. Jika file .gitignore ada di project Anda, file dan folder yang tercantum di dalamnya akan dikecualikan dari deployment Anda.
Anda dapat men-deploy dari sumber lokal menggunakan Firebase CLI atau Firebase konsol.
Izin IAM dan Penyiapan Infrastruktur yang Diperlukan
Karena Firebase CLI dan Firebase console menggunakan infrastruktur backend yang sama untuk menyimpan dan membuat arsip sumber Anda, persyaratan izin IAM yang sama berlaku untuk kedua metode deployment.
Persyaratan yang tepat bergantung pada apakah Anda men-deploy ke lokasi (region) tertentu untuk pertama kalinya atau tidak. Untuk mengetahui informasi selengkapnya tentang izin, lihat ringkasan Firebase IAM dan izin Firebase App Hosting tertentu.
Izin untuk Orientasi Awal (Deployment pertama ke lokasi)
Saat deployment sumber lokal dimulai di lokasi project untuk pertama kalinya, Hosting harus menyediakan bucket GCS untuk menyimpan arsip Anda dan memberikan akses Hosting Service Agent untuk menjangkaunya. Karena ini adalah tugas administratif tingkat project, tugas ini memerlukan izin Pemilik Project atau Admin IAM. Pengguna dengan peran Editor atau Viewer dasar tidak dapat melakukan penyiapan awal ini dan akan diblokir.
Izin penyiapan prasyarat mencakup:
- Mengaktifkan Storage API:
serviceusage.services.enable - Membuat bucket sumber:
storage.buckets.createdanstorage.buckets.list - Mengonfigurasi Agen Layanan:
resourcemanager.projects.setIamPolicyuntuk memberikan Hosting akses baca (roles/storage.objectViewer) sehingga dapat mengambil kode yang diupload selama build.
Untuk deployment awal, bucket GCS dibuat dengan siklus proses 30 hari, setelah itu bucket akan dihapus. Namun, Anda dapat mengelola jangka waktu ini di Konsol Cloud di Cloud Storage -> Buckets -> Lifecycle -> Rules. Lihat mengelola siklus proses objek.
Izin untuk Deployment Berikutnya (Setelah lokasi diinisialisasi)
Setelah bucket sumber dan binding peran diinisialisasi untuk suatu lokasi (baik dengan deployment CLI awal atau penyiapan konsol), Developer reguler, Editor, atau App Hosting Admin dapat men-deploy update. Izin administrasi level project tidak diperlukan untuk deployment rutin.
Izin deployment aktif mencakup:
- Memverifikasi bucket:
storage.buckets.list - Mengupload arsip sumber:
storage.objects.create - Memicu build & peluncuran: Izin Hosting standar (
apphosting.builds.createdanapphosting.rollouts.create)
Men-deploy dari sumber dengan Firebase CLI
Firebase CLI v14.4.0 dan yang lebih baru memungkinkan Anda mengirimkan kode sumber dan konfigurasi aplikasi langsung dari mesin lokal ke Firebase. Hal ini berguna jika Anda sudah mengelola deployment Firebase lainnya (seperti aturan keamanan atau fungsi) dan ingin men-deploy aplikasi web dan layanan backend bersama dengan satu perintah CLI.
Prasyarat
- Project Anda harus menggunakan paket Blaze.
- Anda harus menjalankan firebase-tools versi 14.4.0 atau yang lebih baru.
Langkah-Langkah Deployment
- Jalankan
firebase init apphostingdi direktori project lokal Anda. - Saat diminta, pilih Use an existing project , lalu pilih project Firebase target Anda.
- Pilih backend baru atau yang sudah ada untuk di-deploy; langkah ini menyiapkan deployment Hosting untuk direktori lokal Anda dan meminta detail konfigurasi:
- ID backend yang akan di-deploy
- Region yang akan di-deploy, jika membuat backend baru
- Jalur ke direktori utama kode aplikasi Anda
- Runtime Node.js pilihan Anda. Memilih runtime versi memungkinkan Update Image Dasar Otomatis (ABIU) untuk menerapkan patch keamanan secara otomatis ke lingkungan yang mendasarinya.
- App Hosting menyimpan preferensi deployment Anda di
firebase.json, membuat file di project lokal Anda jika belum ada. Setelah inisialisasi berhasil diselesaikan, jalankanfirebase deployuntuk men-deploy kode sumber Anda.
Contoh firebase.json
{
"apphosting": [
{
"backendId": "my-backend",
// rootDir specifies the directory containing the app to deploy, but the entire
// parent directory of firebase.json will be zipped and uploaded to ensure that
// dependencies outside of the app directory will be available at build time.
"rootDir": "./my-app",
"ignore": [
"node_modules",
".git",
"firebase-debug.log",
"firebase-debug.*.log",
"functions"
]
}
]
}
Men-deploy dengan Firebase Console (Upload Zip)
The Firebase console menyediakan antarmuka grafis untuk men-deploy aplikasi dengan mengupload arsip sumber terkompresi secara langsung. Hal ini berfungsi sebagai alternatif untuk alur koneksi GitHub, jika Anda memilih untuk tidak menggunakan GitHub atau memilih penyiapan CI/CD yang berbeda.
Upload arsip dapat dilakukan selama pembuatan backend awal atau saat membuat peluncuran manual di backend yang ada, termasuk backend yang awalnya di-deploy menggunakan Firebase CLI.
Format yang Didukung
Pengupload konsol secara native memvalidasi dan menerima dua format arsip terkompresi:
.zip.tgz
Format ini ditampilkan secara eksplisit dalam teks deskripsi pengupload file.
Langkah-Langkah Deployment
Opsi A: Selama Orientasi Backend Awal
- Pilih Sumber: Di wizard pembuatan backend, pilih Upload a zip selama langkah "How do you want to import your app?".
- Persiapan Orientasi: Mengklik "Next" akan memicu alur persiapan latar belakang, yang secara berurutan mengaktifkan Storage API, memastikan
peran yang benar disiapkan, dan mengupdate bucket. UI menampilkan indikator pemuatan
dengan pesan status dinamis: "Enabling API...", "Checking
permissions...", dan "Preparing bucket...".
- Penanganan Error &Batasan: Jika langkah persiapan gagal (seperti non-Pemilik menerima
403 PERMISSION_DENIEDkarena izin IAM yang tidak memadai), UI akan menampilkan peringatan khusus yang menginstruksikan Anda untuk menghubungi Project Owner. Navigasi stepper dikunci secara ketat, dan tombol "Next" serta "Finish and Deploy" terakhir tetap dinonaktifkan hingga masalah teratasi.
- Penanganan Error &Batasan: Jika langkah persiapan gagal (seperti non-Pemilik menerima
- Upload File: Setelah persiapan berhasil diselesaikan, pilih atau tarik file arsip Anda ke komponen pengupload file.
Konfigurasi Setelan: Tentukan Direktori utama aplikasi (default ke
/).Klik Finish and Deploy: Tombol "Finish" mandiri dinonaktifkan untuk upload zip karena mengupload arsip adalah tindakan satu kali dan harus segera diikuti dengan deployment untuk memastikan backend berfungsi.
Opsi B: Membuat peluncuran Manual
- Membuka Dialog: Di dasbor Hosting, klik Create rollout.
- Pilih Sumber: Pilih Upload a zip di stepper dialog. Jika backend tidak memiliki koneksi GitHub yang ada, opsi "GitHub" akan dinonaktifkan.
- Persiapan & Upload: Pilihan ini memicu alur persiapan latar belakang yang sama ("Enabling API...", "Checking permissions...", dan "Preparing bucket..."). Setelah berhasil, tarik atau pilih file arsip Anda menggunakan pengunggah, tentukan Direktori utama aplikasi, lalu klik Deploy untuk memicu build dan peluncuran.
Men-deploy menggunakan Terraform
Jika memerlukan kontrol yang lebih besar atas proses build dan lingkungan yang di-deploy, Anda dapat men-deploy menggunakan Terraform. Terraform memungkinkan Anda menentukan dan mengelola App Hosting resource menggunakan file konfigurasi deklaratif, dan memberikan kemampuan untuk men-deploy image container yang telah dibuat sebelumnya langsung ke App Hosting bukan mengandalkan App Hosting untuk membuat dari kode sumber Anda.
Jika Anda baru menggunakan Terraform, lihat Mulai menggunakan Terraform dan Firebase. Jika sudah memahami Terraform, Anda dapat memulai dengan file konfigurasi contoh dan resource App Hosting lainnya.
Menyiapkan koneksi GitHub untuk CI/CD
Anda memiliki opsi untuk menghubungkan repositori GitHub kapan saja di tab Deployment setelan backend di Firebase console. Hal ini memungkinkan Anda men-deploy prototipe aplikasi dari lingkungan lokal, lalu beralih ke pipeline CI/CD otomatis saat Anda siap.
Men-deploy menggunakan alat AI
Kami akan menghentikan Firebase Studio pada 22 Maret 2027. Meskipun backend App Hosting Anda tidak terpengaruh, tombol Publish di Firebase Studio akan dihentikan. Untuk terus memublikasikan update tanpa mengubah URL, migrasikan project Anda. Pelajari cara memigrasikan project.