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