Cloud Functions for Firebase
ความสามารถหลัก
| ผสานรวมฟีเจอร์ของ Firebase และเชื่อมต่อ Firebase กับ Google Cloud | ฟังก์ชันที่คุณเขียนสามารถตอบสนองต่อเหตุการณ์ที่สร้างโดยฟีเจอร์ต่างๆ ของ Firebase และ Google Cloud ได้ ตั้งแต่ ทริกเกอร์การตรวจสอบสิทธิ์ของ Firebase ไปจนถึง ทริกเกอร์ Cloud Storage ผสานรวมฟีเจอร์ต่างๆ ของ Firebase โดยใช้ Admin SDK ร่วมกับ Cloud Functions และผสานรวมกับบริการของบุคคลที่สาม โดยการเขียน Webhook ของคุณเอง Cloud Functions ช่วยลดโค้ด Boilerplate ทำให้ใช้งาน Firebase และ Google Cloud ภายในฟังก์ชันได้ง่ายขึ้น |
| ไม่ต้องบำรุงรักษา | ติดตั้งใช้งานโค้ด JavaScript, TypeScript หรือ Python ไปยังเซิร์ฟเวอร์ของเราด้วยคำสั่งเดียว จากบรรทัดคำสั่ง หลังจากนั้น Firebase จะปรับขนาดทรัพยากรการประมวลผลโดยอัตโนมัติให้ตรงกับ รูปแบบการใช้งานของผู้ใช้ คุณจึงไม่ต้องกังวลเรื่องข้อมูลเข้าสู่ระบบ การกำหนดค่าเซิร์ฟเวอร์ การจัดสรรเซิร์ฟเวอร์ใหม่ หรือการเลิกใช้งานเซิร์ฟเวอร์เก่า |
| เก็บตรรกะของคุณไว้เป็นแบบส่วนตัวและปลอดภัย | ในหลายกรณี นักพัฒนาแอปต้องการควบคุมตรรกะของแอปพลิเคชันใน เซิร์ฟเวอร์เพื่อหลีกเลี่ยงการดัดแปลงในฝั่งไคลเอ็นต์ นอกจากนี้ บางครั้ง ก็ไม่ต้องการอนุญาตให้มีการทำวิศวกรรมย้อนกลับโค้ดนั้น Cloud Functions ได้รับการป้องกันจากไคลเอ็นต์อย่างเต็มรูปแบบ คุณ จึงมั่นใจได้ว่าฟังก์ชันจะเป็นแบบส่วนตัวและทำงานตรงตามที่คุณต้องการเสมอ |
วิธีการทำงาน
หลังจากที่คุณเขียนและติดตั้งใช้งานฟังก์ชันแล้ว เซิร์ฟเวอร์ของ Google จะเริ่มจัดการฟังก์ชันทันที คุณสามารถเรียกใช้ฟังก์ชันได้โดยตรงด้วยคำขอ HTTP, Admin SDK หรือ Job ที่กำหนดเวลาไว้ หรือในกรณีของฟังก์ชันเบื้องหลัง เซิร์ฟเวอร์ของ Google จะคอยฟังเหตุการณ์และเรียกใช้ฟังก์ชันเมื่อมีการ ทริกเกอร์
เมื่อโหลดเพิ่มขึ้นหรือลดลง Google จะตอบสนองด้วยการปรับขนาดจำนวนอินสแตนซ์ของเซิร์ฟเวอร์เสมือนที่จำเป็นในการเรียกใช้ฟังก์ชันอย่างรวดเร็ว ฟังก์ชันแต่ละรายการจะทำงานแยกกันในสภาพแวดล้อมของตัวเองด้วยการกำหนดค่าของตัวเอง
วงจรการทำงานของฟังก์ชันเบื้องหลัง
- คุณเขียนโค้ดสำหรับฟังก์ชันใหม่ โดยเลือกผู้ให้บริการเหตุการณ์ (เช่น Cloud Firestore) และกำหนดเงื่อนไขที่ควรเรียกใช้ฟังก์ชัน
- เมื่อคุณติดตั้งใช้งานฟังก์ชัน ระบบจะดำเนินการดังนี้
- Firebase CLI จะสร้างไฟล์เก็บถาวร
.zipของโค้ดฟังก์ชัน ซึ่งจะอัปโหลดไปยังบัคเก็ต Cloud Storage (นำหน้าด้วยgcf-sources) ก่อนที่ Cloud Functions จะสร้างที่เก็บ Artifact Registry (ชื่อgcf-artifacts) ในโปรเจ็กต์ - Cloud Build จะดึงโค้ดฟังก์ชันและสร้าง แหล่งที่มาของฟังก์ชัน คุณสามารถดู Cloud Build บันทึกใน Google Cloud คอนโซล
- ระบบจะอัปโหลดอิมเมจคอนเทนเนอร์สำหรับโค้ดฟังก์ชันที่สร้างขึ้นไปยังที่เก็บ
ส่วนตัว Artifact Registryในโปรเจ็กต์
(ชื่อ
gcf-artifacts) และเปิดตัวฟังก์ชันใหม่
- Firebase CLI จะสร้างไฟล์เก็บถาวร
- เมื่อผู้ให้บริการเหตุการณ์สร้างเหตุการณ์ที่ตรงกับเงื่อนไขของฟังก์ชัน ระบบจะเรียกใช้โค้ด ฟังก์ชันมีบัญชีบริการแนบอยู่ ซึ่งสามารถใช้เพื่อเข้าถึงบริการอื่นๆ ของ Firebase ได้ด้วยความช่วยเหลือจาก Firebase Admin SDK
- หากฟังก์ชันกำลังจัดการเหตุการณ์จำนวนมาก Google จะสร้างอินสแตนซ์เพิ่มเติมเพื่อจัดการงานได้เร็วขึ้น หากฟังก์ชันไม่ได้ใช้งาน ระบบจะล้างข้อมูลอินสแตนซ์
- เมื่อคุณอัปเดตฟังก์ชันโดยการติดตั้งใช้งานโค้ดที่อัปเดตแล้ว ระบบจะล้างข้อมูลอินสแตนซ์สำหรับเวอร์ชันเก่า พร้อมกับอาร์ติแฟกต์การสร้างใน Artifact Registry และแทนที่ด้วยอินสแตนซ์ใหม่
- เมื่อคุณลบฟังก์ชัน ระบบจะล้างข้อมูลอินสแตนซ์และไฟล์เก็บถาวรแบบ Zip ทั้งหมด รวมถึงอาร์ติแฟกต์บิลด์ที่เกี่ยวข้องใน Artifact Registry และนำการเชื่อมต่อระหว่างฟังก์ชันกับผู้ให้บริการเหตุการณ์ออก
นอกจากการฟังเหตุการณ์ด้วยฟังก์ชันเบื้องหลังแล้ว คุณยังเรียกใช้ ฟังก์ชันได้โดยตรงด้วยคำขอ HTTP หรือการ เรียกจากไคลเอ็นต์ นอกจากนี้ คุณยังทริกเกอร์ฟังก์ชัน ตามกำหนดเวลาที่แน่นอน หรือ จัดคิวฟังก์ชันงานผ่านAdmin SDKได้ด้วย
เส้นทางการติดตั้งใช้งาน
| ตั้งค่า Cloud Functions | ติดตั้ง Firebase CLI และเริ่มต้นใช้งาน Cloud Functions ในโปรเจ็กต์ Firebase | |
| เขียนฟังก์ชัน | เขียนโค้ด JavaScript, โค้ด TypeScript หรือโค้ด Python เพื่อจัดการเหตุการณ์จากบริการของ Firebase บริการของ Google Cloud หรือผู้ให้บริการเหตุการณ์อื่นๆ | |
| ทดสอบฟังก์ชัน | ใช้โปรแกรมจำลองในเครื่อง เพื่อทดสอบฟังก์ชัน | |
| ติดตั้งใช้งานและตรวจสอบ | อัปเกรดโปรเจ็กต์เป็นแพ็กเกจราคา Blaze แบบจ่ายเมื่อใช้ และติดตั้งใช้งานฟังก์ชันโดยใช้ Firebase CLI จากนั้นคุณสามารถใช้ Google Cloudคอนโซล เพื่อดูและค้นหาบันทึกได้ |
ขั้นตอนถัดไป
- เริ่มต้นตั้งค่า สร้าง และติดตั้งใช้งานฟังก์ชัน
- ดูข้อมูลเพิ่มเติมเกี่ยวกับสิ่งที่คุณทำได้ด้วยฟังก์ชัน
- ลองใช้ Cloud Functions codelab