Beberapa lingkungan sering di-deploy dari codebase yang sama, masing-masing dengan konfigurasi yang sedikit berbeda. Misalnya, Anda mungkin ingin menetapkan CPU dan RAM yang lebih sedikit ke lingkungan staging, atau Anda mungkin ingin memastikan lingkungan produksi mempertahankan setidaknya 1 instance yang aktif dan siap melayani permintaan. Anda mungkin juga ingin menentukan variabel lingkungan dan secret yang berbeda, bergantung pada lingkungan dan resource yang ingin Anda gunakan.
Panduan ini menjelaskan cara men-deploy lingkungan produksi dan staging, masing-masing ke project Firebase terpisah. Dengan mengikuti prinsip yang sama, Anda dapat men-deploy ke jenis lingkungan lain yang berbeda. Untuk mempelajari lingkungan lebih lanjut, lihat Ringkasan lingkungan dan Praktik terbaik umum untuk menyiapkan project Firebase.
Prasyarat
- Kode aplikasi Anda sudah disimpan di GitHub.
- Anda telah membuat project terpisah untuk setiap lingkungan, misalnya
my-production-firebase-project
danmy-staging-firebase-project
. Pastikan untuk memberi tag pada project Firebase produksi Anda dengan jenis lingkungan"produksi". - Di setiap project, Anda telah membuat backend App Hosting, dengan cabang
aktif ditetapkan ke cabang GitHub yang ingin Anda deploy (seperti
main
). Lihat Mulai menggunakan App Hosting untuk mengetahui informasi selengkapnya.
Langkah 0: Buat konfigurasi default di apphosting.yaml
App Hosting mendukung file konfigurasi yang disebut apphosting.yaml
untuk mengelola
setelan runtime (CPU, konkurensi, batas memori, dll.) dan variabel
lingkungan untuk aplikasi Anda. App Hosting juga mendukung referensi ke rahasia yang dikelola dengan
Cloud Secret Manager, sehingga aman untuk diperiksa ke dalam kontrol sumber. Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi
backend.
Untuk memulai, buat file apphosting.yaml
di direktori root aplikasi Anda.
Ini adalah file konfigurasi penggantian yang digunakan saat file konfigurasi khusus lingkungan tidak ditemukan. Nilai yang disimpan di
apphosting.yaml
harus berupa nilai default yang aman digunakan untuk semua lingkungan.
Bagian berikutnya menjelaskan cara mengganti nilai default di apphosting.yaml
untuk lingkungan tertentu. Alur contoh ini membuat lingkungan staging.
Langkah 1: Tetapkan Nama lingkungan
Setiap backend App Hosting memiliki setelan Nama lingkungan. Kolom ini digunakan untuk memetakan backend Anda ke file konfigurasi khusus lingkungan, dan dapat diubah kapan saja. Anda hanya dapat menetapkan satu nama lingkungan per backend.
Untuk menyetel nama lingkungan backend Anda:
- Di Firebase console, pilih project penyiapan Anda (dalam contoh ini, my-staging-firebase-project).
- Pilih App Hosting dari navigasi kiri.
- Klik Lihat dasbor di backend yang Anda pilih.
- Di tab Settings, pilih Environment.
- Di bagian Nama lingkungan, masukkan nama lingkungan Anda. Anda dapat memberi nama lingkungan sesuai keinginan. Dalam contoh ini, nilainya adalah staging.
- Klik Save.
Saat peluncuran App Hosting dipicu untuk backend Anda (baik saat git
push atau secara manual melalui konsol), App Hosting akan memeriksa file
apphosting.ENVIRONMENT_NAME.yaml
sebelum
melakukan penggantian ke apphosting.yaml
.
Langkah 2: Buat file apphosting.yaml
khusus lingkungan
Untuk konfigurasi khusus lingkungan, buat file dengan nama
apphosting.ENVIRONMENT_NAME.yaml
untuk
menentukan penggantian khusus lingkungan. File ini memiliki format yang sama dengan
apphosting.yaml default dan harus berada di
direktori root aplikasi Anda bersama apphosting.yaml
.
Pada waktu build, App Hosting menggabungkan kedua file ini, dengan prioritas diberikan kepada nilai dalam file YAML khusus lingkungan dibandingkan file apphosting.yaml
dasar.
Dalam contoh ini, Anda akan membuat file bernama apphosting.staging.yaml
di
direktori root aplikasi:
runConfig:
cpu: 1
memoryMiB: 512
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
Misalnya, Anda sudah memiliki apphosting.yaml
yang terlihat seperti:
runConfig:
cpu: 3
memoryMiB: 1024
maxInstances: 4
minInstances: 0
concurrency: 100
env:
- variable: API_URL
value: api.service.com
availability:
- BUILD
- RUNTIME
- variable: STORAGE_BUCKET
value: mybucket.firebasestorage.app
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
Output gabungan akhir, yang dapat Anda periksa di log Cloud Build, akan terlihat seperti ini:
runConfig:
cpu: 1
memoryMiB: 512
maxInstances: 4
minInstances: 0
concurrency: 5
env:
- variable: API_URL
value: api.staging.service.com
availability:
- BUILD
- variable: STORAGE_BUCKET
value: mybucket.firebasestorage.app
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
Perhatikan bahwa nilai runConfig
tertentu seperti CPU juga telah diganti, serta variabel lingkungan yang tumpang-tindih.
Langkah 3: Deploy codebase Anda
Setelah selesai mengedit file apphosting.ENVIRONMENT_NAME.yaml
khusus lingkungan, kirim file Anda ke GitHub:
$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push
Backend yang diberi tag dengan nama lingkungan ini akan menggunakan nilai penggantian spesifik yang telah Anda tentukan dalam file YAML yang sesuai, dan kembali ke apphosting.yaml
jika nilai tidak ditemukan. Untuk backend tanpa nama lingkungan terkait, Anda dapat terus menggunakan apphosting.yaml.
Langkah berikutnya
- Pelajari lebih lanjut: ikuti codelab Firebase yang mengintegrasikan aplikasi yang dihosting dengan fitur AI Google dan Firebase Authentication: Next.js | Angular
- Menghubungkan domain kustom.
- Konfigurasi backend Anda.
- Pantau peluncuran, penggunaan situs, dan log.