Men-deploy beberapa lingkungan dari codebase

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 dan my-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,

  1. Di Firebase console, pilih project staging Anda (dalam contoh ini, my-staging-firebase-project).
  2. Pilih App Hosting dari navigasi sebelah kiri.
  3. Klik View dashboard pada backend yang Anda pilih.
  4. Di tab Setelan, pilih Deployment.
  5. Di bagian Nama lingkungan,masukkan nama lingkungan Anda. Anda dapat memberi nama lingkungannya sesuai keinginan Anda. Dalam contoh ini, class-nya adalah staging.
  6. 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