การเปรียบเทียบเวอร์ชัน 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
  • อินสแตนซ์ขนาดใหญ่ขึ้น: เรียกใช้ภาระงานในหน่วยความจำที่ใหญ่ขึ้น ภาระงานที่ต้องใช้การประมวลผลสูง และภาระงานแบบขนาน
  • การเกิดขึ้นพร้อมกันที่ดีขึ้น: จัดการคำขอหลายรายการพร้อมกันด้วยอินสแตนซ์ฟังก์ชันเดียวเพื่อลด Cold Start และปรับปรุงเวลาในการตอบสนอง
  • การจัดการการเข้าชม: แยกการเข้าชมระหว่างการแก้ไขฟังก์ชันต่างๆ หรือย้อนกลับฟังก์ชันเป็นเวอร์ชันก่อนหน้า
  • การผสานรวม 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 ได้