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