แสดงเนื้อหาแบบไดนามิกและโฮสต์ Microservice โดยใช้โฮสติ้งของ Firebase

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