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