แสดงเนื้อหาแบบไดนามิกและโฮสต์ 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 ของไมโครเซอร์วิส ดูตัวอย่างได้ที่ตัวอย่างโอเพนซอร์สนี้

  • แคชเนื้อหาแบบไดนามิก - คุณสามารถกำหนดค่าการแคชเนื้อหาแบบไดนามิกใน 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