Umumnya, memiliki beberapa lingkungan yang di-deploy dari codebase yang sama, masing-masing dengan konfigurasi yang sedikit berbeda. Misalnya, Anda mungkin ingin menetapkan lebih sedikit CPU dan RAM ke lingkungan staging, atau Anda mungkin ingin memastikan lingkungan produksi Anda membuat setidaknya 1 instance tetap aktif dan siap tayang permintaan. Anda mungkin juga ingin menentukan variabel lingkungan yang berbeda dan rahasia, tergantung pada lingkungan dan sumber daya yang ingin Anda gunakan.
Panduan ini menjelaskan cara men-deploy lingkungan produksi dan staging, masing-masing untuk project Firebase yang terpisah. Dengan mengikuti prinsip yang sama, Anda dapat men-deploy ke jenis lingkungan lain yang berbeda. Untuk mempelajari lingkungan lebih lanjut, lihat Gambaran umum lingkungan kerja dan General praktik terbaik untuk menyiapkan Firebase project tertentu.
Prasyarat
- Kode aplikasi Anda sudah disimpan di GitHub.
- Anda sudah membuat proyek berbeda untuk setiap
lainnya—misalnya
my-production-firebase-project
danmy-staging-firebase-project
. Pastikan untuk memberi tag pada Firebase produksi proyek dengan "production" lingkungan jenis data. - Di setiap project, Anda telah membuat backend App Hosting, dengan ID
ditetapkan ke cabang GitHub yang ingin Anda deploy (seperti
main
). Lihat Mulai gunakan App Hosting untuk mengetahui info selengkapnya tidak akurat atau tidak sesuai.
Langkah 0: Buat konfigurasi default di apphosting.yaml
App Hosting mendukung file konfigurasi bernama apphosting.yaml
untuk mengelola
setelan runtime (CPU, konkurensi, batas memori, dll.) dan lingkungan
variabel untuk aplikasi Anda. Alat ini juga mendukung referensi
ke rahasia yang dikelola dengan
Cloud Secret Manager, yang membuat pemeriksaan ke kontrol sumber aman. Untuk selengkapnya
informasi, lihat Mengonfigurasi
backend.
Untuk memulai, buat file apphosting.yaml
di direktori utama aplikasi Anda.
Ini adalah file konfigurasi fallback
yang digunakan ketika sebuah
file konfigurasi khusus lingkungan tidak ditemukan. Nilai-nilai yang disimpan di
apphosting.yaml
harus menjadi default yang aman digunakan untuk semua lingkungan.
Bagian selanjutnya menjelaskan cara mengganti nilai default di apphosting.yaml
untuk lingkungan tertentu. Contoh alur ini membuat lingkungan staging.
Langkah 1: Menetapkan nama Lingkungan
Setiap backend App Hosting memiliki setelan Nama lingkungan. Bidang ini adalah 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 menetapkan nama lingkungan backend,
- Di Firebase console, pilih project staging Anda (dalam contoh ini, my-staging-firebase-project).
- Pilih App Hosting dari navigasi sebelah kiri.
- Klik View dashboard pada backend yang Anda pilih.
- Di tab Setelan, pilih Deployment.
- Di bagian Nama lingkungan,masukkan nama lingkungan Anda. Anda dapat memberi nama lingkungannya sesuai keinginan Anda. Dalam contoh ini, class-nya adalah staging.
- Klik Save.
Saat peluncuran App Hosting dipicu untuk backend Anda (baik di git
mendorong atau secara manual melalui konsol), App Hosting akan memeriksa
apphosting.ENVIRONMENT_NAME.yaml
file sebelumnya
kembali 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 utama aplikasi Anda bersama apphosting.yaml
.
Pada waktu build, App Hosting menggabungkan kedua file ini, dengan prioritas yang diberikan kepada
nilai dalam file YAML khusus lingkungan pada apphosting.yaml
dasar
.
Dalam contoh ini, Anda akan membuat file bernama apphosting.staging.yaml
di
direktori utama 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.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
Output gabungan akhir, yang dapat Anda periksa di log Cloud Build, akan 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.appspot.com
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
Perlu diperhatikan bahwa nilai runConfig
tertentu seperti CPU juga telah ditimpa
sebagai 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
Setiap backend yang diberi tag dengan nama lingkungan ini akan menggunakan penggantian tertentu
nilai yang telah Anda tentukan dalam file YAML yang sesuai, dan kembali ke
apphosting.yaml
jika nilai tidak ditemukan. Untuk backend tanpa instance
nama lingkungan, Anda dapat terus menggunakan apphosting.yaml.
Langkah berikutnya
- Lebih dalam: pelajari codelab Firebase yang mengintegrasikan aplikasi yang dihosting dengan Fitur Firebase Authentication dan Google AI: Next.js | Angular
- Menghubungkan domain kustom.
- Konfigurasi backend Anda.
- Pantau peluncuran, penggunaan situs, dan log.