เป็นเรื่องปกติที่จะมีการใช้สภาพแวดล้อมหลายรายการจากฐานโค้ดเดียวกัน โดยแต่ละสภาพแวดล้อมมีการกําหนดค่าแตกต่างกันเล็กน้อย เช่น คุณอาจต้องการกําหนด CPU และ RAM ให้กับสภาพแวดล้อมการทดสอบให้น้อยลง หรืออาจต้องการตรวจสอบว่าสภาพแวดล้อมในการใช้งานจริงมีอินสแตนซ์ที่ใช้งานอยู่อย่างน้อย 1 รายการและพร้อมให้บริการคําขอ นอกจากนี้ คุณอาจต้องระบุตัวแปรสภาพแวดล้อมและข้อมูลลับที่แตกต่างกัน ทั้งนี้ขึ้นอยู่กับสภาพแวดล้อมและทรัพยากรที่ต้องการใช้
คู่มือนี้จะอธิบายวิธีทำให้สภาพแวดล้อมเวอร์ชันที่ใช้งานจริงและเวอร์ชันทดลองใช้ใช้งานได้ โดยแต่ละสภาพแวดล้อมจะอยู่ในโปรเจ็กต์ Firebase แยกกัน คุณติดตั้งใช้งานในสภาพแวดล้อมประเภทอื่นๆ ได้โดยทำตามหลักการเดียวกัน ดูข้อมูลเพิ่มเติมเกี่ยวกับสภาพแวดล้อมได้ที่ภาพรวมของสภาพแวดล้อมและแนวทางปฏิบัติแนะนำทั่วไปสำหรับการตั้งค่าโปรเจ็กต์ Firebase
ข้อกำหนดเบื้องต้น
- โค้ดแอปพลิเคชันของคุณจัดเก็บอยู่ใน GitHub แล้ว
- คุณได้สร้างโปรเจ็กต์ที่แยกกันสำหรับสภาพแวดล้อมแต่ละรายการแล้ว เช่น
my-production-firebase-project
และmy-staging-firebase-project
อย่าลืมติดแท็กโปรเจ็กต์ Firebase เวอร์ชันที่ใช้งานจริงด้วยประเภทสภาพแวดล้อม"production" - ในแต่ละโปรเจ็กต์ คุณได้สร้างแบ็กเอนด์ App Hosting โดยตั้งค่าสาขาที่ใช้งานอยู่เป็นสาขา GitHub ที่ต้องการทำให้ใช้งานได้ (เช่น
main
) ดูข้อมูลเพิ่มเติมที่หัวข้อเริ่มต้นใช้งาน App Hosting
ขั้นตอนที่ 0: สร้างการกำหนดค่าเริ่มต้นใน apphosting.yaml
App Hosting รองรับไฟล์การกําหนดค่าชื่อ apphosting.yaml
เพื่อจัดการการตั้งค่ารันไทม์ (CPU, การทํางานพร้อมกัน, ขีดจํากัดหน่วยความจํา ฯลฯ) และตัวแปรสภาพแวดล้อมสําหรับแอป นอกจากนี้ยังรองรับการอ้างอิงข้อมูลลับที่จัดการด้วยเครื่องมือจัดการข้อมูลลับของ Cloud เพื่อให้ตรวจสอบสิทธิ์ในระบบควบคุมแหล่งที่มาได้อย่างปลอดภัย ดูข้อมูลเพิ่มเติมได้ที่กําหนดค่าแบ็กเอนด์
หากต้องการเริ่มต้นใช้งาน ให้สร้างไฟล์ apphosting.yaml
ในไดเรกทอรีรูทของแอป
ไฟล์นี้เป็นไฟล์การกําหนดค่าสำรองที่ใช้เมื่อไม่พบไฟล์การกําหนดค่าเฉพาะสภาพแวดล้อม ค่าที่จัดเก็บใน apphosting.yaml
ควรเป็นค่าเริ่มต้นที่ปลอดภัยสำหรับทุกสภาพแวดล้อม
ส่วนถัดไปจะอธิบายวิธีลบล้างค่าเริ่มต้นใน apphosting.yaml
สําหรับสภาพแวดล้อมที่เฉพาะเจาะจง ตัวอย่างขั้นตอนนี้จะสร้างสภาพแวดล้อมการทดสอบ
ขั้นตอนที่ 1: ตั้งชื่อสภาพแวดล้อม
แบ็กเอนด์ App Hosting แต่ละรายการมีการตั้งค่าชื่อสภาพแวดล้อม ช่องนี้ใช้เพื่อแมปแบ็กเอนด์กับไฟล์การกําหนดค่าเฉพาะสภาพแวดล้อม และสามารถเปลี่ยนแปลงได้ทุกเมื่อ คุณตั้งชื่อสภาพแวดล้อมได้เพียงชื่อเดียวต่อแบ็กเอนด์
วิธีตั้งชื่อสภาพแวดล้อมของแบ็กเอนด์
- ในคอนโซล Firebase ให้เลือกโปรเจ็กต์ที่ใช้ทดสอบ (ในตัวอย่างนี้ใช้ชื่อว่า my-staging-firebase-project)
- เลือก App Hosting จากการนําทางด้านซ้าย
- คลิกดูแดชบอร์ดในแบ็กเอนด์ที่เลือก
- ในแท็บการตั้งค่า ให้เลือกการติดตั้งใช้งาน
- ในส่วนชื่อสภาพแวดล้อม ให้ป้อนชื่อสภาพแวดล้อม คุณตั้งชื่อสภาพแวดล้อมได้ตามต้องการ ในตัวอย่างนี้คือ staging
- คลิกบันทึก
เมื่อมีการทริกเกอร์การเปิดตัว App Hosting สําหรับแบ็กเอนด์ (ใน git push หรือด้วยตนเองผ่านคอนโซล) 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.firebasestorage.app
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.firebasestorage.app
availability:
- RUNTIME
- variable: API_KEY
secret: secretIDforAPI
- variable: DATABASE_URL
secret: secretStagingDatabaseURL
โปรดทราบว่าระบบจะเขียนทับค่า runConfig
บางค่า เช่น CPU รวมถึงตัวแปรสภาพแวดล้อมที่ทับซ้อนกัน
ขั้นตอนที่ 3: ติดตั้งใช้งานโค้ดเบส
เมื่อแก้ไขไฟล์ 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 ต่อไปได้
ขั้นตอนถัดไป
- เจาะลึก: เดินชมโค้ดแล็บ Firebase ที่ผสานรวมแอปที่โฮสต์กับฟีเจอร์ Firebase Authentication และ AI ของ Google ดังนี้ Next.js | Angular
- เชื่อมต่อโดเมนที่กำหนดเอง
- กำหนดค่าแบ็กเอนด์
- ตรวจสอบการเปิดตัว การใช้งานเว็บไซต์ และบันทึก