การเปรียบเทียบเวอร์ชัน 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 (2nd gen)

Cloud Functions เป็นข้อเสนอ Functions-as-a-Service รุ่นใหม่ ของ Firebase สร้างขึ้นบน Cloud Run และ Eventarc Cloud Functions (รุ่นที่ 2) จึงนำโครงสร้างพื้นฐานที่ได้รับการปรับปรุง และครอบคลุมเหตุการณ์ที่กว้างขึ้นมาสู่ 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 (1st gen) 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
  3. ในแผงตัวกรอง ในส่วนป้ายกำกับ ให้เพิ่มตัวกรองป้ายกำกับที่มีคีย์ goog-managed-byและค่าcloudfunctions

ข้อจำกัด

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

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

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