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

Firebase Hosting ทำงานร่วมกับตัวเลือกการประมวลผลแบบ Serverless ซึ่งรวมถึง Cloud Functions for Firebase และ Cloud Run เมื่อใช้ Firebase Hosting กับ ตัวเลือกเหล่านี้ คุณจะโฮสต์ไมโครเซอร์วิสได้โดยกำหนดให้คำขอ 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 และมีสภาพแวดล้อมแบบ Serverless ที่มีการจัดการอย่างเต็มรูปแบบ ปรับขนาดอัตโนมัติ และปลอดภัย แต่คุณสามารถใช้ตัวเลือกทั้ง 2 นี้สำหรับ Use Case ที่แตกต่างกัน และระดับการกำหนดค่าที่ต้องการ

เมื่อใช้ตัวเลือกแบบ 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 account ดูคำถามที่พบบ่อยเกี่ยวกับ Firebase

Cloud Run การใช้งาน + Container Registry พื้นที่เก็บข้อมูล

มีโควต้าการใช้งานฟรี แต่ต้องมีบัญชี Cloud Billing account