Cloud Functions สําหรับ Firebase
หากใช้ Cloud Functions ใน Google Cloud อยู่แล้ว ดูข้อมูลเพิ่มเติมเกี่ยวกับบทบาทของ 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
) ก่อนที่จะมีการสร้างที่เก็บ Artifact Registry (ชื่อgcf-artifacts
) ในโปรเจ็กต์โดย Cloud Functions - Cloud Build จะดึงข้อมูลโค้ดฟังก์ชันและสร้างแหล่งที่มาของฟังก์ชัน คุณดูบันทึก Cloud Build ได้ในคอนโซล Google Cloud
- ระบบจะอัปโหลดอิมเมจคอนเทนเนอร์สําหรับโค้ดฟังก์ชันที่คอมไพล์แล้วไปยังที่เก็บข้อมูล Artifact Registry ส่วนตัวในโปรเจ็กต์ (ชื่อ
gcf-artifacts
) และเปิดตัวฟังก์ชันใหม่
- Firebase CLI จะสร้างไฟล์
- เมื่อผู้ให้บริการเหตุการณ์สร้างเหตุการณ์ที่ตรงกับเงื่อนไขของฟังก์ชัน ระบบจะเรียกใช้โค้ด
- หากฟังก์ชันกำลังจัดการเหตุการณ์หลายรายการ 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