การเปรียบเทียบเวอร์ชัน Cloud Functions

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 นาที
  • สูงสุด 60 นาทีสำหรับฟังก์ชันที่ทริกเกอร์ด้วย HTTP
  • สูงสุด 9 นาทีสำหรับฟังก์ชันที่ทริกเกอร์ด้วยเหตุการณ์
บัญชีบริการ* บัญชีบริการ Google App Engine (PROJECT_ID@appspot.gserviceaccount.com) บัญชีบริการ 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 ได้ดังนี้

  1. ไปที่Cloud Billingหน้ารายงาน ในคอนโซล Google Cloud
  2. หากได้รับข้อความแจ้ง ให้เลือกบัญชีสำหรับการเรียกเก็บเงินที่เชื่อมโยงกับโปรเจ็กต์ที่อยู่ในระบบคลาวด์ของ Google
  3. ในแผงตัวกรอง ภายในป้ายกำกับ เพิ่มตัวกรองป้ายกำกับที่มีคีย์ goog-managed-by และค่า cloudfunctions

ข้อจำกัด

Cloud Functions for Firebase (รุ่นที่ 2) ไม่รองรับAnalytics เหตุการณ์

อย่างไรก็ตาม เนื่องจากฟังก์ชันรุ่นที่ 1 และรุ่นที่ 2 สามารถอยู่ร่วมกันในไฟล์แหล่งข้อมูลเดียวกัน คุณจึงยังพัฒนาและติดตั้งใช้งานทริกเกอร์ Analytics ในรุ่นที่ 1 ร่วมกับฟังก์ชันรุ่นที่ 2 ได้