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