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 ของ Microservice ดูตัวอย่างได้ที่ตัวอย่างโอเพนซอร์สนี้แคชเนื้อหาแบบไดนามิก - คุณสามารถกำหนดค่าการแคชเนื้อหาแบบไดนามิกใน 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 การใช้งาน
โควต้าการใช้งานฟรี แต่ต้องมีCloud Billingบัญชี ดูคำถามที่พบบ่อยเกี่ยวกับ Firebase |
การใช้งาน Cloud Run +
พื้นที่เก็บข้อมูล Container Registry
โควต้าการใช้งานฟรี แต่ต้องมีบัญชี Cloud Billing |