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

ข้อจำกัด

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

แม้ว่า Cloud Functions for Firebase (รุ่นที่ 2) จะรองรับเหตุการณ์การบล็อกการตรวจสอบสิทธิ์ แต่ก็ไม่รองรับเหตุการณ์ Authentication พื้นฐานชุดเดียวกับ รุ่นที่ 1

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