Cloud Functions for Firebase มี 2 เวอร์ชัน ได้แก่
- Cloud Functions (รุ่นที่ 2) ซึ่ง จะทำให้ฟังก์ชันของคุณใช้งานได้เป็นบริการบน Cloud Run โดยคุณสามารถ ทริกเกอร์ฟังก์ชันเหล่านี้ได้โดยใช้ Eventarc และ Pub/Sub
- Cloud Functions (รุ่นที่ 1) ซึ่งเป็นฟังก์ชันเวอร์ชันเดิม ที่มีทริกเกอร์เหตุการณ์และการกำหนดค่าที่จำกัด
เราขอแนะนำให้คุณเลือก Cloud Functions (รุ่นที่ 2) สำหรับฟังก์ชันใหม่ๆ ทุกครั้งที่มีโอกาส อย่างไรก็ตาม เราวางแผนที่จะสนับสนุน Cloud Functions (รุ่นที่ 1) ต่อไป
หน้านี้อธิบายฟีเจอร์ที่เปิดตัวใน Cloud Functions และ เปรียบเทียบผลิตภัณฑ์ทั้ง 2 เวอร์ชัน
Cloud Functions (รุ่นที่ 2)
Cloud Functions เป็นฟังก์ชันในรูปแบบบริการ (Functions-as-a-Service) รุ่นใหม่ของ Firebase Cloud Functions (รุ่นที่ 2) สร้างขึ้นบน Cloud Run และ Eventarc จึงมีโครงสร้างพื้นฐานที่ได้รับการปรับปรุง และรองรับเหตุการณ์ที่หลากหลายมากขึ้นสำหรับ Cloud Functions ซึ่งรวมถึงสิ่งต่อไปนี้
- สร้างขึ้นบน Cloud Run: ฟังก์ชันสร้างขึ้นด้วย Cloud Build และทำให้ใช้งานได้เป็นบริการ Cloud Run โดยใช้ สภาพแวดล้อมการดำเนินการ Cloud Run เริ่มต้น ซึ่งช่วยให้คุณปรับแต่งฟังก์ชันได้ตามต้องการเหมือนกับบริการ Cloud Run โปรดดูเอกสารประกอบของ Cloud Run เพื่อ สำรวจตัวเลือกในการกำหนดค่าบริการ เช่น ขีดจำกัด หน่วยความจำ, ตัวแปรสภาพแวดล้อม, และอื่นๆ
- เวลาในการประมวลผลคำขอที่นานขึ้น: เรียกใช้ภาระงานที่มีคำขอที่ใช้เวลานานขึ้น เช่น การประมวลผลสตรีมข้อมูลขนาดใหญ่จาก Cloud Storage หรือ BigQuery
- ขนาดอินสแตนซ์ที่ใหญ่ขึ้น: เรียกใช้ภาระงานที่ใช้หน่วยความจำมาก ภาระงานที่ประมวลผลอย่างหนัก และ ภาระงานแบบขนาน
- การเกิดขึ้นพร้อมกันที่ได้รับการปรับปรุง: จัดการคำขอหลายรายการพร้อมกันด้วยอินสแตนซ์ฟังก์ชันเดียวเพื่อลดการเริ่มต้นแบบเย็นและปรับปรุงเวลาในการตอบสนอง
- การจัดการการรับส่งข้อมูล: แยกการรับส่งข้อมูลระหว่างฟังก์ชันเวอร์ชันต่างๆ หรือย้อนกลับฟังก์ชันเป็นเวอร์ชันก่อนหน้า
- Eventarc การผสานรวม: รองรับทริกเกอร์Eventarc แบบเนทีฟ ซึ่งจะนำแหล่งที่มาของเหตุการณ์กว่า 90 รายการที่Eventarc รองรับมายัง Cloud Functions
- การรองรับ CloudEvents ที่หลากหลายมากขึ้น: รองรับ CloudEvents ซึ่งเป็นมาตรฐานอุตสาหกรรมในรันไทม์ของทุกภาษา เพื่อมอบ ประสบการณ์การใช้งานที่สอดคล้องกันสำหรับนักพัฒนาแอป
ดูรายละเอียดในตารางเปรียบเทียบ
เนื่องจาก Cloud Functions ทำให้ฟังก์ชันใช้งานได้เป็นบริการบน Cloud Run, Cloud Functions จึงใช้โควต้าและขีดจำกัดของทรัพยากรร่วมกับ Cloud Run ดูโควต้า
ตารางเปรียบเทียบ
| ฟีเจอร์ | Cloud Functions (รุ่นที่ 1) | Cloud Functions |
|---|---|---|
| รีจิสทรีรูปภาพ | Container Registry หรือ Artifact Registry | Artifact Registry เท่านั้น |
| ระยะหมดเวลาของคำขอ | ไม่เกิน 9 นาที |
|
| บัญชีบริการ* | บัญชีบริการ Google App Engine (PROJECT_ID@ |
บัญชีบริการ Compute เริ่มต้นของ Google Cloud (PROJECT_NUMBER-compute@developer.gserviceaccount.com) |
| ขนาดอินสแตนซ์ | RAM สูงสุด 8 GB พร้อม vCPU 2 รายการ | RAM สูงสุด 16 GiB พร้อม vCPU 4 รายการ |
| การเกิดขึ้นพร้อมกัน | คำขอหลายรายการพร้อมกัน 1 รายการต่ออินสแตนซ์ฟังก์ชัน | คำขอพร้อมกันสูงสุด 1,000 รายการต่ออินสแตนซ์ฟังก์ชัน |
* นี่คือบัญชีบริการเริ่มต้นที่ใช้ในการเข้าถึง Firebase หรือ Cloud API จากฟังก์ชันที่กำลังทำงาน Firebase Admin SDK จะใช้บัญชีนี้เมื่อคุณ เริ่มต้นโดยไม่มีอาร์กิวเมนต์
ราคา
ดูข้อมูลราคาได้ที่ แพ็กเกจราคาของ Firebase
คุณสามารถดูค่าใช้จ่ายที่เกี่ยวข้องกับ Cloud Functions ได้ดังนี้
- ไปที่หน้า Cloud Billing Reports ในคอนโซล Google Cloud
- หากได้รับข้อความแจ้ง ให้เลือกบัญชีสำหรับการเรียกเก็บเงินที่เชื่อมโยงกับโปรเจ็กต์ Google Cloud
- ในแผงตัวกรอง ในส่วนป้ายกำกับ
ให้เพิ่มตัวกรองป้ายกำกับที่มีคีย์
goog-managed-byและค่าcloudfunctions
ข้อจำกัด
Cloud Functions for Firebase (รุ่นที่ 2) ไม่รองรับเหตุการณ์ Analytics
แม้ว่า Cloud Functions for Firebase (รุ่นที่ 2) จะรองรับเหตุการณ์การบล็อกการตรวจสอบสิทธิ์ แต่ก็ไม่รองรับเหตุการณ์ Authentication พื้นฐานชุดเดียวกับ รุ่นที่ 1
อย่างไรก็ตาม เนื่องจากฟังก์ชันรุ่นที่ 1 และรุ่นที่ 2 สามารถอยู่ร่วมกันในไฟล์ซอร์สเดียวกันได้ คุณจึงยังคง พัฒนาและทำให้ทริกเกอร์ Analytics และ Authentication พื้นฐานใช้งานได้ในรุ่นที่ 1 พร้อมกับฟังก์ชันรุ่นที่ 2