Firebase Hosting ผสานรวมกับตัวเลือกการประมวลผลแบบ Serverless ซึ่งรวมถึง Cloud Functions for Firebase และ Cloud Run เมื่อใช้ Firebase Hosting กับตัวเลือกเหล่านี้ คุณจะโฮสต์ Microservice ได้โดยกำหนดคำขอ HTTPS ให้ทริกเกอร์ฟังก์ชันและแอปที่อยู่ในคอนเทนเนอร์ให้ทำงานในสภาพแวดล้อมที่มีการจัดการและปลอดภัย
Cloud Functions for Firebase: คุณเขียนและติดตั้งใช้งานฟังก์ชัน ซึ่งเป็นโค้ดแบ็กเอนด์ที่ตอบสนองต่อทริกเกอร์ที่เฉพาะเจาะจง จากนั้นใช้ Firebase Hosting เพื่อส่งคําขอ HTTPS โดยตรงเพื่อทริกเกอร์ให้ฟังก์ชันทำงาน
Cloud Run: คุณเขียนและทำให้แอปพลิเคชันที่แพ็กเกจในอิมเมจคอนเทนเนอร์ใช้งานได้ จากนั้นใช้ Firebase Hosting เพื่อส่งคำขอ HTTPS โดยตรงเพื่อทริกเกอร์ให้แอปที่อยู่ในคอนเทนเนอร์ทำงาน
Use Case
คุณใช้ตัวเลือกการประมวลผลแบบ Serverless กับ Firebase Hosting ได้อย่างไร
แสดงเนื้อหาแบบไดนามิก - นอกจากการแสดงเนื้อหาแบบคงที่ในเว็บไซต์ Hosting แล้ว คุณยังแสดงการตอบกลับที่สร้างขึ้นแบบไดนามิกจากฟังก์ชันหรือแอปที่อยู่ในคอนเทนเนอร์ซึ่งดําเนินการตามตรรกะฝั่งเซิร์ฟเวอร์ได้ด้วย
เช่น คุณสามารถชี้รูปแบบ URL (เช่น
/blog/<blog-post-id>
) ไปยังฟังก์ชันที่ใช้พารามิเตอร์รหัสบล็อกโพสต์ของ URL เพื่อดึงข้อมูลเนื้อหาจากฐานข้อมูลแบบไดนามิกสร้าง REST API - คุณสามารถสร้าง API ของไมโครเซอร์วิสได้โดยใช้ฟังก์ชัน
เช่น ฟังก์ชันสามารถจัดการฟังก์ชันการลงชื่อเข้าใช้สําหรับเว็บไซต์ ขณะที่เว็บไซต์ของคุณโฮสต์อยู่ที่
/
ระบบจะเปลี่ยนเส้นทางคำขอไปยัง/api
ไปยัง API ของไมโครเซอร์วิส ดูตัวอย่างได้ที่ตัวอย่างโอเพนซอร์สนี้แคชเนื้อหาแบบไดนามิก - คุณสามารถกำหนดค่าการแคชเนื้อหาแบบไดนามิกใน CDN ทั่วโลก
ตัวอย่างเช่น หากฟังก์ชันสร้างเนื้อหาใหม่เป็นระยะๆ เท่านั้น คุณสามารถเร่งความเร็วของแอปได้โดยแคชเนื้อหาที่สร้างขึ้นไว้เป็นระยะเวลาสั้นๆ เป็นอย่างน้อย นอกจากนี้ คุณยังอาจลดต้นทุนการดำเนินการได้ด้วย เนื่องจากระบบจะแสดงเนื้อหาจาก CDN แทนที่จะแสดงผ่านฟังก์ชันที่ทริกเกอร์หรือแอปที่ใช้คอนเทนเนอร์
แสดงผลแอปแบบหน้าเดียวล่วงหน้า - คุณสามารถปรับปรุง SEO และเพิ่มประสิทธิภาพการแชร์ในโซเชียลเน็ตเวิร์กต่างๆ ได้โดยการสร้างแท็ก
meta
แบบไดนามิก ดูข้อมูลเพิ่มเติมได้จากวิดีโอนี้ หรือดูตัวอย่างแบบโอเพนซอร์สนี้
การเลือกตัวเลือกแบบ Serverless
แม้ว่าทั้ง Cloud Functions for Firebase และ Cloud Run จะผสานรวมกับ Firebase Hosting และให้บริการสภาพแวดล้อมแบบเซิร์ฟเวอร์เสมือนที่จัดการอย่างเต็มรูปแบบ ปรับขนาดอัตโนมัติ และปลอดภัย แต่คุณก็ใช้ประโยชน์จากทั้ง 2 ตัวเลือกสำหรับกรณีการใช้งานที่แตกต่างกันและระดับการกำหนดค่าที่กำหนดเองที่ต้องการได้
เมื่อใช้ตัวเลือกแบบ Serverless ใดตัวเลือกหนึ่ง การวางตำแหน่งร่วมกับเซิร์ฟเวอร์สำหรับ Firebase Hosting นั้นดีที่สุดโดยการติดตั้งใช้งานในภูมิภาคใดภูมิภาคหนึ่งต่อไปนี้
us-west1
us-central1
us-east1
europe-west1
asia-east1
ตารางต่อไปนี้อธิบายข้อควรพิจารณาเบื้องต้นในการใช้ Cloud Functions for Firebase เทียบกับ Cloud Run ดูรายการโควต้า ขีดจำกัด และเมตริกทั้งหมดได้ในเอกสารประกอบโดยละเอียดของผลิตภัณฑ์แต่ละรายการ (Cloud Functions for Firebase หรือ Cloud Run)
สิ่งที่ควรพิจารณา | Cloud Functions for Firebase | Cloud Run |
---|---|---|
ตั้งค่า | Firebase CLI จะรวมงานหลายรายการไว้ในคําสั่งเดียว ตั้งแต่การเริ่มต้นไปจนถึงการสร้างและการติดตั้งใช้งาน | คอนเทนเนอร์มีตัวเลือกที่ปรับแต่งได้มากกว่า ดังนั้นงานการตั้งค่า การสร้าง และการปรับใช้งานจึงมีขั้นตอนแยกกัน |
สภาพแวดล้อมรันไทม์ | ต้องใช้ Node.js แต่คุณระบุเวอร์ชันของ Node.js ที่จะใช้ได้ | เมื่อสร้างคอนเทนเนอร์ คุณจะระบุสภาพแวดล้อมรันไทม์ |
การรองรับภาษาและเฟรมเวิร์ก | JavaScript และ TypeScript ระบบรองรับเฟรมเวิร์กเว็บ เช่น Express.js |
ภาษาใดก็ได้ที่ Dockerfile รองรับ ซึ่งรวมถึง Go, Node.js, Python, Java และอื่นๆ รองรับเฟรมเวิร์กเว็บสำหรับแต่ละภาษา |
หมดเวลาสําหรับคําขอ Hosting | 60 วินาที (ดูหมายเหตุด้านล่าง) | 60 วินาที (ดูหมายเหตุด้านล่าง) |
การทำงานพร้อมกัน | 1 คำขอต่ออินสแตนซ์ของฟังก์ชัน (ไม่มีการทำงานพร้อมกันต่ออินสแตนซ์) |
คำขอหลายรายการพร้อมกันสูงสุด 1,000 รายการต่ออินสแตนซ์คอนเทนเนอร์ |
การเรียกเก็บเงิน | Cloud Functions usage
โควต้าการใช้งานฟรี แต่ต้องมีบัญชี Cloud Billing ดูคําถามที่พบบ่อยเกี่ยวกับ Firebase |
การใช้งาน Cloud Run +
พื้นที่เก็บข้อมูล Container Registry
โควต้าการใช้งานฟรี แต่ต้องมีบัญชี Cloud Billing |