ทำให้สภาพแวดล้อมหลายอย่างใช้งานได้จากฐานของโค้ด

เป็นเรื่องปกติที่จะมีสภาพแวดล้อมหลายแบบที่ทำให้ใช้งานได้จากฐานของโค้ดเดียวกัน โดยมีการกำหนดค่าต่างกันเล็กน้อย เช่น คุณอาจต้องการกำหนดให้ CPU และ RAM สำหรับสภาพแวดล้อมการทดลองใช้ลดลง หรือคุณอาจต้องตรวจสอบ สภาพแวดล้อมที่ใช้งานจริงจะทำให้อินสแตนซ์อย่างน้อย 1 รายการทำงานและพร้อมทำงาน คำขอ นอกจากนี้คุณอาจต้องการระบุตัวแปรสภาพแวดล้อมอื่นและ ข้อมูลลับตามสภาพแวดล้อมและทรัพยากรที่ต้องการใช้

คู่มือนี้จะอธิบายถึงวิธีทำให้สภาพแวดล้อมที่ใช้งานจริงและสภาพแวดล้อมการทดลองใช้ แต่ละรายการมีวัตถุประสงค์ต่อไปนี้ โปรเจ็กต์ Firebase แยกต่างหาก โดยทำตามหลักการเดียวกันนี้ คุณสามารถปรับใช้ สภาพแวดล้อมประเภทอื่นๆ หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับสภาพแวดล้อม ให้ไปที่ จาก ภาพรวมของ สภาพแวดล้อมและทั่วไป แนวทางปฏิบัติแนะนำในการตั้งค่า Firebase โปรเจ็กต์

ข้อกำหนดเบื้องต้น

  • ระบบได้จัดเก็บโค้ดของแอปพลิเคชันไว้ใน GitHub แล้ว
  • คุณได้สร้างโปรเจ็กต์สำหรับ สภาพแวดล้อม เช่น my-production-firebase-project และ my-staging-firebase-project อย่าลืมติดแท็ก Firebase เวอร์ชันที่ใช้งานจริง ที่มี"การผลิต" สภาพแวดล้อม type
  • ในแต่ละโปรเจ็กต์ คุณได้สร้างแบ็กเอนด์ App Hosting ด้วย Branch ที่ตั้งค่าเป็น Branch ของ GitHub ที่ต้องการทำให้ใช้งานได้ (เช่น main) โปรดดู เริ่มต้นใช้งาน App Hosting เพื่อรับข้อมูลเพิ่มเติม

ขั้นตอนที่ 0: สร้างการกำหนดค่าเริ่มต้นใน apphosting.yaml

App Hosting รองรับไฟล์การกำหนดค่าชื่อ apphosting.yaml ในการจัดการ การตั้งค่ารันไทม์ (CPU, การเกิดขึ้นพร้อมกัน, ขีดจำกัดหน่วยความจำ ฯลฯ) และสภาพแวดล้อม สำหรับแอปของคุณ และยังรองรับการอ้างอิงไปยังข้อมูลลับที่มีการจัดการด้วย Cloud Secret Manager ทำให้ตรวจสอบการควบคุมแหล่งที่มาได้อย่างปลอดภัย สำหรับข้อมูลเพิ่มเติม โปรดดูที่กำหนดค่า แบ็กเอนด์

หากต้องการเริ่มต้นใช้งาน ให้สร้างไฟล์ apphosting.yaml ในไดเรกทอรีรากของแอป ซึ่งเป็นไฟล์การกำหนดค่าสำรองที่ใช้เมื่อ ไม่พบไฟล์การกำหนดค่าเฉพาะสภาพแวดล้อม ค่าที่เก็บไว้ใน apphosting.yaml ควรเป็นค่าเริ่มต้นที่ปลอดภัยสำหรับใช้ในทุกสภาพแวดล้อม

ส่วนถัดไปจะอธิบายวิธีลบล้างค่าเริ่มต้นใน apphosting.yaml สำหรับสภาพแวดล้อมที่เฉพาะเจาะจง ขั้นตอนตัวอย่างนี้จะสร้างสภาพแวดล้อมการทดลองใช้

ขั้นตอนที่ 1: ตั้งชื่อสภาพแวดล้อม

แบ็กเอนด์ App Hosting แต่ละรายการมีการตั้งค่าชื่อสภาพแวดล้อม ช่องนี้ ซึ่งใช้ในการแมปแบ็กเอนด์กับไฟล์การกำหนดค่าเฉพาะสภาพแวดล้อม และ เปลี่ยนแปลงได้ตลอดเวลา คุณตั้งชื่อสภาพแวดล้อมได้เพียงชื่อเดียวต่อแบ็กเอนด์เท่านั้น

วิธีตั้งค่าชื่อสภาพแวดล้อมของแบ็กเอนด์

  1. ในคอนโซล Firebase ให้เลือกโปรเจ็กต์การทดลองใช้ (ในตัวอย่างนี้ my-staging-firebase-project)
  2. เลือก App Hosting จากเมนูนำทางด้านซ้าย
  3. คลิกดูแดชบอร์ดบนแบ็กเอนด์ที่เลือก
  4. ในแท็บการตั้งค่า ให้เลือกการทำให้ใช้งานได้
  5. ในส่วนชื่อสภาพแวดล้อม ให้ป้อนชื่อสภาพแวดล้อม คุณสามารถตั้งชื่อ สภาพแวดล้อมตามที่คุณต้องการ ในตัวอย่างนี้คือการทดลองใช้
  6. คลิกบันทึก

เมื่อมีการทริกเกอร์การเปิดตัว App Hosting สำหรับแบ็กเอนด์ของคุณ (ไม่ว่าจะเป็น Git ก็ตาม พุชหรือดำเนินการด้วยตนเองผ่านคอนโซล) App Hosting จะตรวจหา ก่อน apphosting.ENVIRONMENT_NAME.yaml ไฟล์ จะกลับไปใช้ apphosting.yaml

ขั้นตอนที่ 2: สร้างไฟล์ apphosting.yaml เฉพาะสภาพแวดล้อม

สำหรับการกำหนดค่าเฉพาะสภาพแวดล้อม ให้สร้างไฟล์ที่มีชื่อ apphosting.ENVIRONMENT_NAME.yamlเพื่อ ระบุการลบล้างเฉพาะสภาพแวดล้อม ไฟล์นี้มีรูปแบบเดียวกับ apphosting.yaml เริ่มต้นและต้องอยู่ใน ไดเรกทอรีรากของแอปควบคู่ไปกับ apphosting.yaml

ขณะสร้างบิลด์ App Hosting จะรวม 2 ไฟล์นี้เข้าด้วยกัน โดยจัดลำดับความสำคัญให้ ในไฟล์ YAML เฉพาะสภาพแวดล้อมบนฐาน apphosting.yaml

ในตัวอย่างนี้ คุณจะสร้างไฟล์ชื่อ apphosting.staging.yaml ใน ไดเรกทอรีรากของแอป:


runConfig:
  cpu: 1
  memoryMiB: 512
  concurrency: 5

env:
  -   variable: API_URL
    value: api.staging.service.com
    availability:
      -   BUILD

  -   variable: DATABASE_URL
    secret: secretStagingDatabaseURL

สมมติว่าคุณมี apphosting.yaml ที่มีลักษณะดังนี้

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

ระบบจะผสานเอาต์พุตสุดท้ายที่ผสานซึ่งคุณตรวจสอบได้ในบันทึกของ Cloud Build ซึ่งจะมีลักษณะดังนี้

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

โปรดทราบว่าค่า runConfig บางค่า เช่น CPU ถูกเขียนทับด้วย เป็นตัวแปรสภาพแวดล้อมที่ทับซ้อนกัน

ขั้นตอนที่ 3: ทำให้ Codebase ใช้งานได้

เมื่อแก้ไขไฟล์ apphosting.ENVIRONMENT_NAME.yaml ที่ระบุสภาพแวดล้อมเสร็จแล้ว ให้พุชไฟล์ของคุณไปยัง GitHub ดังนี้

$ git add apphosting.<ENVIRONMENT_NAME>.yaml
$ git commit -m "Added environment specific yaml file"
$ git push

แบ็กเอนด์ที่ติดแท็กด้วยชื่อสภาพแวดล้อมนี้จะใช้การลบล้างเฉพาะ ที่คุณระบุไว้ในไฟล์ YAML ที่เกี่ยวข้อง และกลับไปใช้ apphosting.yaml เมื่อไม่พบค่า สำหรับแบ็กเอนด์ที่ไม่มีการเชื่อมโยง คุณจะใช้ apphosting.yaml ต่อไปได้

ขั้นตอนถัดไป