Cloud Functions สำหรับ Firebase
ความสามารถหลัก
| ผสานรวมฟีเจอร์ของ Firebase และเชื่อมต่อ Firebase กับ Google Cloud | ฟังก์ชันที่คุณเขียนสามารถตอบสนองต่อเหตุการณ์ที่สร้างขึ้นโดยฟีเจอร์ต่างๆ ของ Firebase และ Google Cloud ได้ ตั้งแต่ทริกเกอร์การตรวจสอบสิทธิ์ Firebase ไปจนถึงทริกเกอร์ Cloud Storage ผสานรวมฟีเจอร์ต่างๆ ของ Firebase โดยใช้ Admin SDK ร่วมกับ Cloud Functions และผสานรวมกับบริการของบุคคลที่สาม โดยการเขียน Webhook ของคุณเอง Cloud Functions ลดโค้ด เทมเพลตที่ต้องใช้บ่อยๆ ทำให้ใช้ Firebase และ Google Cloud ในฟังก์ชัน ได้ง่ายขึ้น |
| ไม่ต้องบำรุงรักษา | ทำให้โค้ด JavaScript, TypeScript หรือ Python ของคุณใช้งานได้กับเซิร์ฟเวอร์ของเราด้วยคำสั่งเดียวจากบรรทัดคำสั่ง จากนั้น Firebase จะปรับขนาดทรัพยากรการประมวลผลให้ตรงกับรูปแบบการใช้งานของผู้ใช้โดยอัตโนมัติ คุณจึงไม่ต้องกังวลเกี่ยวกับข้อมูลเข้าสู่ระบบ การกำหนดค่าเซิร์ฟเวอร์ การจัดสรรเซิร์ฟเวอร์ใหม่ หรือการเลิกใช้งานเซิร์ฟเวอร์เก่า |
| เก็บตรรกะของคุณไว้เป็นแบบส่วนตัวและปลอดภัย | ในหลายกรณี นักพัฒนาแอปต้องการควบคุมตรรกะของแอปพลิเคชันในเซิร์ฟเวอร์เพื่อหลีกเลี่ยงการดัดแปลงฝั่งไคลเอ็นต์ นอกจากนี้ บางครั้ง เราก็ไม่ต้องการอนุญาตให้ทำวิศวกรรมย้อนกลับกับโค้ดนั้น Cloud Functions จะแยกออกจากไคลเอ็นต์โดยสมบูรณ์ คุณจึงมั่นใจได้ว่าข้อมูลจะเป็นส่วนตัวและจะทำตามที่คุณต้องการเสมอ |
วิธีการทำงาน
หลังจากเขียนและติดตั้งใช้งานฟังก์ชันแล้ว เซิร์ฟเวอร์ของ Google จะเริ่มจัดการฟังก์ชันทันที คุณเรียกใช้ฟังก์ชันได้โดยตรงด้วยคำขอ HTTP Admin SDK หรือ งานที่กำหนดเวลาไว้ หรือในกรณีของฟังก์ชันที่ทำงานเบื้องหลัง เซิร์ฟเวอร์ของ 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