หน้านี้แสดงรายละเอียดขีดจำกัดที่รองรับการปรับขนาดตามการใช้งานสำหรับ Cloud Functions ตามแพ็กเกจราคาแบบจ่ายเมื่อใช้ของ Blaze ขีดจำกัดเหล่านี้มีผลกับโปรเจ็กต์ Firebase ที่ทำให้ฟังก์ชันใช้งานได้ในสภาพแวดล้อมรันไทม์ Node.js 10
แพ็กเกจ Blaze ให้การเรียกใช้ เวลาในการประมวลผล และการรับส่งข้อมูลทางอินเทอร์เน็ตจำนวนมากโดยไม่มีค่าใช้จ่าย อย่างไรก็ตาม การทำให้ฟังก์ชันใช้งานได้จะมีการเรียกเก็บเงินขนาดเล็กสำหรับพื้นที่เก็บข้อมูลที่ใช้สำหรับคอนเทนเนอร์ของฟังก์ชัน ดูข้อมูลเพิ่มเติมได้ที่คำถามที่พบบ่อยเกี่ยวกับ Firebase FAQ
โควต้าสำหรับ Firebase ครอบคลุม 4 ส่วน ได้แก่
ขีดจำกัดทรัพยากร
ขีดจำกัดเหล่านี้จะส่งผลต่อจำนวนทรัพยากรทั้งหมดที่ฟังก์ชันใช้ได้
ขีดจำกัดเวลา
ขีดจำกัดเหล่านี้จะส่งผลต่อระยะเวลาที่ฟังก์ชันทำงานได้
ขีดจำกัดอัตรา
ขีดจำกัดเหล่านี้จะส่งผลต่ออัตราที่คุณเรียก Firebase API เพื่อจัดการฟังก์ชัน
ขีดจำกัดของเครือข่าย
ขีดจำกัดเหล่านี้จะส่งผลต่อการเชื่อมต่อขาออกและขีดจำกัดอินสแตนซ์
เราอธิบายขีดจำกัดประเภทต่างๆ ไว้โดยละเอียดด้านล่าง และระบุความแตกต่างระหว่างขีดจำกัดสำหรับ Firebase (รุ่นที่ 1) กับ Firebase (รุ่นที่ 2) ไว้ในส่วนที่เกี่ยวข้อง
ขีดจำกัดทรัพยากร
ขีดจำกัดทรัพยากรจะส่งผลต่อจำนวนทรัพยากรทั้งหมดที่ฟังก์ชันใช้ได้ ขอบเขตระดับภูมิภาคเป็นต่อโปรเจ็กต์ และแต่ละโปรเจ็กต์จะมีขีดจำกัดของตัวเอง
| โควต้า | คำอธิบาย | ขีดจำกัด (รุ่นที่ 1) | ขีดจำกัด (รุ่นที่ 2) | เพิ่มได้ | ขอบเขต |
|---|---|---|---|---|---|
| จำนวนฟังก์ชัน | จำนวนฟังก์ชันทั้งหมดที่ทำให้ใช้งานได้ต่อภูมิภาค | 1,000 | 1,000 ลบด้วยจำนวนบริการ Cloud Run ที่ทำให้ใช้งานได้ | ไม่ได้ | ต่อภูมิภาค |
| ขนาดการทำให้ใช้งานได้สูงสุด | ขนาดสูงสุดของการทำให้ฟังก์ชันเดียวใช้งานได้ | 100MB (บีบอัด) สำหรับแหล่งที่มา 500MB (ไม่บีบอัด) สำหรับแหล่งที่มาและโมดูล |
ไม่มี | ไม่ได้ | ต่อฟังก์ชัน |
| ขนาดคำขอ HTTP สูงสุดที่ไม่ได้บีบอัด | ข้อมูลที่ส่งไปยังฟังก์ชัน HTTP ในคำขอ HTTP | 10MB | 32MB | ไม่ได้ | ต่อการเรียกใช้ |
| ขนาดการตอบกลับ HTTP สูงสุดที่ไม่ได้บีบอัด | ข้อมูลที่ส่งจากฟังก์ชัน HTTP ในการตอบกลับ HTTP | 10MB | 10MB สำหรับการตอบสนองแบบสตรีมมิง 32MB สำหรับการตอบสนองแบบไม่สตรีมมิง |
ไม่ได้ | ต่อการเรียกใช้ |
| ขนาดเหตุการณ์สูงสุดสำหรับฟังก์ชันที่ขับเคลื่อนด้วยเหตุการณ์ | ข้อมูลที่ส่งในเหตุการณ์ไปยังฟังก์ชันพื้นหลัง | 10MB | 512KB สำหรับเหตุการณ์ Eventarc 10MB สำหรับเหตุการณ์เดิม |
ไม่ได้ | ต่อเหตุการณ์ |
| หน่วยความจำสูงสุดของฟังก์ชัน | ปริมาณหน่วยความจำที่อินสแตนซ์ของแต่ละฟังก์ชันใช้ได้ | 8GiB | 32GiB | ไม่ได้ | ต่อฟังก์ชัน |
| หน่วยความจำสูงสุดของโปรเจ็กต์ | ปริมาณหน่วยความจำเป็นไบต์ที่โปรเจ็กต์ใช้ได้ โดยวัดจากผลรวมของหน่วยความจำที่ผู้ใช้ขอในอินสแตนซ์ของฟังก์ชันในช่วงเวลา 1 นาที | ขึ้นอยู่กับภูมิภาคที่เลือก ขีดจำกัดนี้อาจสูงกว่าในภูมิภาคที่มีความจุสูงหรือต่ำกว่าในภูมิภาคที่เพิ่งเปิดใหม่ | ไม่มี | ได้ | ต่อโปรเจ็กต์และภูมิภาค |
| CPU สูงสุดของโปรเจ็กต์ | ปริมาณ CPU เป็นมิลลิ vCPU ที่โปรเจ็กต์ใช้ได้ โดยวัดจากผลรวมของ CPU ที่ผู้ใช้ขอในอินสแตนซ์ของฟังก์ชันในช่วงเวลา 1 นาที | ขึ้นอยู่กับภูมิภาคที่เลือก ขีดจำกัดนี้อาจสูงกว่าในภูมิภาคที่มีความจุสูงหรือต่ำกว่าในภูมิภาคที่เพิ่งเปิดใหม่ | ไม่มี | ได้ | ต่อโปรเจ็กต์และภูมิภาค |
ขีดจำกัดเวลา
| โควต้า | คำอธิบาย | ขีดจำกัด (รุ่นที่ 1) | ขีดจำกัด (รุ่นที่ 2) | เพิ่มได้ | ขอบเขต |
|---|---|---|---|---|---|
| ระยะเวลาสูงสุดของฟังก์ชัน | ระยะเวลาสูงสุดที่ฟังก์ชันทำงานได้ก่อนที่จะถูกบังคับให้สิ้นสุด | 540 วินาที |
|
ไม่ได้ | ต่อการเรียกใช้ |
ขีดจำกัดอัตรา
| โควต้า | คำอธิบาย | ขีดจำกัด (รุ่นที่ 1) | ขีดจำกัด (รุ่นที่ 2) | เพิ่มได้ | ขอบเขต |
|---|---|---|---|---|---|
| การเรียก API (อ่าน) | การเรียกเพื่ออธิบายหรือแสดงรายการฟังก์ชันผ่าน Firebase API | 5,000 ครั้งต่อ 100 วินาที | 1,200 ครั้งต่อ 60 วินาที | เฉพาะรุ่นที่ 1 | ต่อโปรเจ็กต์ (รุ่นที่ 1) ต่อภูมิภาค (รุ่นที่ 2) |
| การเรียก API (เขียน) | การเรียกเพื่อทำให้ฟังก์ชันใช้งานได้หรือลบฟังก์ชันผ่าน Firebase API | 80 ครั้งต่อ 100 วินาที | 60 ครั้งต่อ 60 วินาที | ไม่ได้ 1 | ต่อโปรเจ็กต์ (รุ่นที่ 1) ต่อภูมิภาค (รุ่นที่ 2) |
| การเรียก API (เรียก) | การเรียก API "call" | 16 ครั้งต่อ 100 วินาที | ไม่มี | ไม่ได้ 2 | ต่อโปรเจ็กต์ |
ขีดจำกัดของเครือข่าย
ดูข้อมูลเกี่ยวกับ Firebase (รุ่นที่ 2) คำขอเครือข่ายและ ขีดจำกัดแบนด์วิดท์ได้ที่ ขีดจำกัดของเครือข่าย
ขีดจำกัดของเครือข่ายต่อไปนี้มีผลกับ Firebase (รุ่นที่ 1)
- การเชื่อมต่อขาออกต่อวินาทีต่ออินสแตนซ์: 500 (เพิ่มไม่ได้)
- การแปลง DNS ขาออกต่อวินาทีต่ออินสแตนซ์: 100 (เพิ่มไม่ได้)
- แพ็กเก็ตสูงสุดต่อวินาทีต่ออินสแตนซ์: 80,000
- บิตสูงสุดต่อวินาทีต่ออินสแตนซ์: 100,000,000
ความสามารถในการปรับขนาด
Firebase ที่เรียกใช้โดย HTTP จะเพิ่มทรัพยากรขึ้นอย่างรวดเร็วเพื่อจัดการการรับส่งข้อมูลขาเข้า ขณะที่ฟังก์ชันพื้นหลังจะปรับขนาดขึ้นอย่างค่อยเป็นค่อยไป ความสามารถในการปรับขนาดขึ้นของฟังก์ชันขึ้นอยู่กับปัจจัยบางอย่าง ได้แก่
- ระยะเวลาที่ใช้ในการดำเนินการฟังก์ชันให้เสร็จสมบูรณ์ (โดยทั่วไปแล้ว ฟังก์ชันที่ทำงานในระยะเวลาสั้นๆ จะเพิ่มทรัพยากรเพื่อจัดการคำขอพร้อมกันได้มากขึ้น)
- ระยะเวลาที่ฟังก์ชันใช้ในการเริ่มต้นเมื่อเริ่มแอปแบบ Cold Start
- อัตราข้อผิดพลาดของฟังก์ชัน
ปัจจัยชั่วคราว เช่น การใช้งานในภูมิภาคและความจุของศูนย์ข้อมูล
โควต้าเพิ่มเติมสำหรับฟังก์ชันพื้นหลัง
| โควต้า | คำอธิบาย | ขีดจำกัด | เพิ่มได้ | ขอบเขต | เวอร์ชันผลิตภัณฑ์ |
|---|---|---|---|---|---|
| การเรียกใช้พร้อมกันสูงสุด | การเรียกใช้พร้อมกันสูงสุดของฟังก์ชันเดียว ตัวอย่าง: หากการจัดการแต่ละเหตุการณ์ใช้เวลา 100 วินาที อัตราการเรียกใช้จะจำกัดอยู่ที่ 30 ครั้งต่อวินาทีโดยเฉลี่ย |
3,000 | ได้ | ต่อฟังก์ชัน | รุ่นที่ 1 เท่านั้น |
| อัตราการเรียกใช้สูงสุด | อัตราสูงสุดของเหตุการณ์ที่ฟังก์ชันเดียวจัดการ ตัวอย่าง: หากการจัดการเหตุการณ์ใช้เวลา 100 มิลลิวินาที อัตราการเรียกใช้จะจำกัดอยู่ที่ 1,000 ครั้งต่อวินาที แม้ว่าจะมีการจัดการคำขอแบบขนานเพียง 100 รายการโดยเฉลี่ย |
1,000 ครั้งต่อวินาที | ไม่ได้ | ต่อฟังก์ชัน | รุ่นที่ 1 เท่านั้น |
| ขนาดข้อมูลเหตุการณ์พร้อมกันสูงสุด | ขนาดรวมสูงสุดของเหตุการณ์ขาเข้าสำหรับการเรียกใช้พร้อมกันของ
ฟังก์ชันเดียว ตัวอย่าง: หากเหตุการณ์มีขนาด 1MB และการประมวลผลใช้เวลา 10 วินาที อัตราเฉลี่ยจะเป็น 1 เหตุการณ์ต่อวินาที เนื่องจากระบบจะไม่ประมวลผลเหตุการณ์ที่ 11 จนกว่าจะประมวลผลเหตุการณ์ 1 ใน 10 เหตุการณ์แรกเสร็จ |
10MB | ไม่ได้ | ต่อฟังก์ชัน | รุ่นที่ 1 และรุ่นที่ 2 |
| อัตราการส่งข้อมูลสูงสุดของเหตุการณ์ขาเข้า | อัตราการส่งข้อมูลสูงสุดของเหตุการณ์ขาเข้าไปยังฟังก์ชันเดียว ตัวอย่าง: หากเหตุการณ์มีขนาด 1MB อัตราการเรียกใช้จะ อยู่ที่ 10 ครั้งต่อวินาทีสูงสุด แม้ว่าฟังก์ชันจะเสร็จภายใน 100 มิลลิวินาทีก็ตาม |
10MB ต่อวินาที | ไม่ได้ | ต่อฟังก์ชัน | รุ่นที่ 1 และรุ่นที่ 2 |
เมื่อครบตามจำนวนที่จำกัดของโควต้าแล้ว
เมื่อฟังก์ชันใช้ทรัพยากรที่จัดสรรไว้ทั้งหมด ทรัพยากรดังกล่าวจะไม่พร้อมใช้งานจนกว่าโควต้าจะรีเฟรชหรือเพิ่มขึ้น ซึ่งอาจหมายความว่าฟังก์ชันและฟังก์ชันอื่นๆ ทั้งหมดในโปรเจ็กต์เดียวกันจะไม่ทำงานจนกว่าจะถึงเวลานั้น ฟังก์ชันจะแสดงรหัสข้อผิดพลาด HTTP 500 เมื่อทรัพยากรอย่างใดอย่างหนึ่งเกินโควต้าและฟังก์ชันไม่สามารถดำเนินการได้
หากต้องการเพิ่มโควต้าให้สูงกว่าค่าเริ่มต้นที่ระบุไว้ที่นี่ ให้ไปที่หน้า Firebaseโควต้า เลือกโควต้าที่ต้องการแก้ไข คลิก แก้ไขโควต้า ป้อนข้อมูลผู้ใช้หากระบบแจ้ง และป้อน ขีดจำกัดโควต้าใหม่สำหรับแต่ละโควต้าที่เลือก
ขีดจำกัดโควต้าสำหรับการทำให้ใช้งานได้โดยใช้ Firebase CLI
สำหรับแต่ละฟังก์ชันที่ Firebase CLI ทำให้ใช้งานได้ ขีดจำกัดอัตราและเวลาประเภทต่อไปนี้จะได้รับผลกระทบ
- การเรียก API (อ่าน) - 1 ครั้งต่อการทำให้ใช้งานได้ ไม่ว่าจะมีฟังก์ชันกี่รายการก็ตาม
- ขีดจำกัด: 5,000 ครั้งต่อ 100 วินาที
- การเรียก API (เขียน) - 1 ครั้งต่อฟังก์ชัน
- ขีดจำกัด: 80 ครั้งต่อ 100 วินาที
ดูข้อมูลอ้างอิง Firebase CLI ด้วย