คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X ข้อมูล
ลักษณะปัญหา
แอปพลิเคชันไคลเอ็นต์ได้รับรหัสสถานะ HTTP 413 Request Entity Too Large
พร้อมรหัสข้อผิดพลาด protocol.http.TooBigBody
เป็นการตอบกลับสำหรับการเรียก API
ข้อความแสดงข้อผิดพลาด
แอปพลิเคชันไคลเอ็นต์จะได้รับโค้ดตอบกลับต่อไปนี้
HTTP/1.1 413 Request Entity Too Large
นอกจากนี้ คุณอาจพบข้อความแสดงข้อผิดพลาดต่อไปนี้
{ "fault":{ "faultstring":"Body buffer overflow", "detail":{ "errorcode":"protocol.http.TooBigBody" } } }
สาเหตุที่เป็นไปได้
ข้อผิดพลาดนี้จะเกิดขึ้นหากขนาดเปย์โหลดที่แอปพลิเคชันไคลเอ็นต์ส่งไปยัง Apigee Edge โดยเป็นส่วนหนึ่งของคำขอ HTTP สูงกว่าขีดจำกัดที่อนุญาตใน Apigee Edge
สาเหตุที่เป็นไปได้สำหรับข้อผิดพลาดนี้คือ
สาเหตุ | คำอธิบาย | วิธีการแก้ปัญหาที่ใช้กับ |
---|---|---|
เพย์โหลดคำขอมีขนาดใหญ่กว่าขีดจำกัดที่อนุญาต | ขนาดเพย์โหลดที่แอปพลิเคชันไคลเอ็นต์ส่งซึ่งเป็นส่วนหนึ่งของคำขอ HTTP ไปยัง Apigee Edge เกินขีดจำกัดที่อนุญาตใน Apigee Edge | ผู้ใช้ Edge Public และ Private Cloud |
ขนาดเปย์โหลดคำขอเกินขีดจำกัดที่อนุญาตหลังจากการยกเลิกการบีบอัด | ขนาดเพย์โหลดที่ส่งในรูปแบบที่บีบอัดโดยแอปพลิเคชันไคลเอ็นต์ซึ่งเป็นส่วนหนึ่งของคำขอ HTTP ไปยัง Apigee Edge เกินขีดจำกัดที่อนุญาตเมื่อคลายการบีบอัดโดย Apigee Edge | ผู้ใช้ Edge Public และ Private Cloud |
ขั้นตอนการวินิจฉัยทั่วไป
ใช้เครื่องมือ/เทคนิคอย่างใดอย่างหนึ่งต่อไปนี้เพื่อวิเคราะห์ข้อผิดพลาดนี้
การตรวจสอบ API
วิธีวินิจฉัยข้อผิดพลาดโดยใช้ API Monitoring
- ลงชื่อเข้าใช้ UI ของ Apigee Edge ในฐานะผู้ใช้ที่มี บทบาทที่เหมาะสม
เปลี่ยนเป็นองค์กรที่คุณต้องการตรวจสอบปัญหา
- ไปที่หน้าวิเคราะห์ > การตรวจสอบ API > ตรวจสอบ
- เลือกกรอบเวลาเฉพาะที่คุณพบข้อผิดพลาด
- คุณอาจเลือกตัวกรองพร็อกซีเพื่อจำกัดรหัสข้อผิดพลาดให้แคบลง
- พล็อตโค้ดข้อผิดพลาดเทียบกับเวลา
เลือกเซลล์ที่มีรหัสข้อผิดพลาด
protocol.http.TooBigBody
และรหัสสถานะ413
ดังที่แสดงด้านล่างข้อมูลเกี่ยวกับรหัสข้อผิดพลาด
protocol.http.TooBigBody
จะแสดงอยู่ดังที่แสดงด้านล่าง- คลิกดูบันทึกแล้วขยายแถวสําหรับคําขอที่ล้มเหลว จากนั้น จากหน้าต่างบันทึก ให้สังเกตรายละเอียดตามที่แสดงด้านล่าง
ไม่บีบอัด
สถานการณ์ที่ 1: ส่งเปย์โหลดคำขอในรูปแบบที่ไม่ได้บีบอัด
ดูรายละเอียดต่อไปนี้จากหน้าต่างบันทึก
- รหัสสถานะ:
413
- แหล่งที่มาของข้อผิดพลาด:
proxy
- Fault Code:
protocol.http.TooBigBody
- ความยาวคำขอ(ไบต์):
15360440
(~15 MB)
หาก Fault Source มีค่า
proxy
Fault Code มีค่าprotocol.http.TooBigBody
และ Request Length มากกว่า 10 MB หมายความว่าคำขอ HTTP จากไคลเอ็นต์มีขนาดเปย์โหลดคำขอมากกว่าขีดจำกัดที่อนุญาตใน Apigeeขนาดไฟล์ที่บีบอัด
สถานการณ์ที่ 2: ส่งเปย์โหลดคำขอในรูปแบบที่บีบอัด
ดูรายละเอียดต่อไปนี้จากหน้าต่าง Logs
- รหัสสถานะ:
413
- แหล่งที่มาของข้อผิดพลาด:
proxy
- Fault Code:
protocol.http.TooBigBody
- ความยาวคำขอ(ไบต์):
15264
(~15kB)
หากแหล่งที่มาของข้อผิดพลาดมีค่า
proxy
โค้ดข้อผิดพลาดมีค่าprotocol.http.TooBigBody
และความยาวคำขอน้อยกว่า 10 MB หมายความว่าคำขอ HTTP จากไคลเอ็นต์มีขนาดเพย์โหลดคำขอต่ำกว่าขีดจำกัดที่อนุญาตในรูปแบบที่บีบอัด แต่ขนาดเพย์โหลดจะมากกว่าขีดจำกัดที่อนุญาตเมื่อไม่ได้บีบอัดโดย Apigee - รหัสสถานะ:
Trace
วิธีวินิจฉัยข้อผิดพลาดโดยใช้เครื่องมือติดตาม
- เปิดใช้เซสชันการติดตามและ
- รอให้เกิดข้อผิดพลาด
413 Request Entity Too Large
หรือ - หากทำให้ปัญหาเกิดซ้ำได้ ให้เรียก API และจำลองข้อผิดพลาด
413 Request Entity Too Large
- รอให้เกิดข้อผิดพลาด
ตรวจสอบว่าเปิดใช้แสดงข้อมูลโฟลว์ทั้งหมดอยู่
- เลือกคำขอที่ล้มเหลว 1 รายการและตรวจสอบการติดตาม
- ไปที่ขั้นตอนคำขอที่ได้รับจากไคลเอ็นต์
ไม่บีบอัด
สถานการณ์ที่ 1: ส่งเปย์โหลดคำขอในรูปแบบที่ไม่ได้บีบอัด
โปรดทราบข้อมูลต่อไปนี้
- ไม่มีการเข้ารหัสเนื้อหา:
- Content-Length:
15360204
ขนาดไฟล์ที่บีบอัด
สถานการณ์ที่ 2: ส่งเปย์โหลดคำขอในรูปแบบที่บีบอัด
โปรดทราบข้อมูลต่อไปนี้
- การเข้ารหัสเนื้อหา:
gzip
- Content-Length:
14969
- ประเภทเนื้อหา:
application/x-gzip
- เลื่อนดูการติดตามระยะต่างๆ และค้นหาตำแหน่งที่เกิดข้อผิดพลาด
โดยทั่วไปคุณจะพบข้อผิดพลาดในขั้นตอนหลังช่วงคำขอที่ได้รับจากไคลเอ็นต์ ดังที่แสดงด้านล่าง
- บันทึกค่าของข้อผิดพลาดจากการติดตาม การติดตามตัวอย่างข้างต้นจะแสดงข้อมูลต่อไปนี้
- ข้อผิดพลาด:
Body buffer overflow
- error.class:
com.apigee.errors.http.user.RequestTooLarge
- ข้อผิดพลาด:
ไปที่การตอบกลับที่ส่งไปยังไคลเอ็นต์ แล้วจดบันทึกค่าของข้อผิดพลาดจากการติดตาม ตัวอย่างการติดตามด้านล่างแสดงข้อมูลต่อไปนี้
- ข้อผิดพลาด:
413 Request Entity Too Large
- เนื้อหาข้อผิดพลาด:
{"fault":{"faultstring":"Body buffer overflow","detail":{"errorcode":"protocol.http.TooBigBody"}}}
- ข้อผิดพลาด:
- ไปที่เฟส AX (บันทึกข้อมูล Analytics) ในการติดตาม แล้วคลิกที่การติดตาม
ในส่วนรายละเอียดระยะ ให้เลื่อนลงไปที่การอ่านตัวแปร
- ระบุค่าของตัวแปร client.received.content.length ซึ่งระบุข้อมูลต่อไปนี้
- ขนาดจริงของเพย์โหลดคำขอเมื่อส่งในรูปแบบที่ไม่บีบอัดและ
- ขนาดของเพย์โหลดคำขอเมื่อยกเลิกการบีบอัดโดย Apigee เมื่อส่งเพย์โหลดในรูปแบบที่บีบอัด ซึ่งจะเหมือนกับค่าของขีดจำกัดที่อนุญาต (10 MB) ในสถานการณ์นี้
ไม่บีบอัด
สถานการณ์ที่ 1: ขอเปย์โหลดในรูปแบบที่ไม่ได้บีบอัด
ตัวแปร client.received.content.length:
15360204
ขนาดไฟล์ที่บีบอัด
สถานการณ์ที่ 2: ขอเปย์โหลดในรูปแบบที่บีบอัด
ตัวแปร client.received.content.length:
10489856
- ตารางต่อไปนี้อธิบายสาเหตุที่ Apigee แสดงข้อผิดพลาด
413
ในทั้ง 2 สถานการณ์โดยอิงตามค่าของตัวแปร client.received.content.lengthสถานการณ์ ค่าของ client.received.content.length สาเหตุที่ดำเนินการไม่สำเร็จ เพย์โหลดคำขอในรูปแบบที่ไม่ได้บีบอัด ประมาณ 15 MB ขนาด > ขีดจำกัดที่อนุญาตคือ 10 MB เพย์โหลดคำขอในรูปแบบที่บีบอัด ประมาณ 10 MB ขนาดเกินขีดจำกัดเมื่อยกเลิกการบีบอัด
NGINX
วิธีวินิจฉัยข้อผิดพลาดโดยใช้บันทึกการเข้าถึง NGINX
- หากเป็นผู้ใช้ Private Cloud คุณจะใช้บันทึกการเข้าถึง NGINX เพื่อระบุข้อมูลสำคัญเกี่ยวกับข้อผิดพลาด HTTP
413
ได้ ตรวจสอบบันทึกการเข้าถึง NGINX ดังนี้
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
- ค้นหาเพื่อดูว่ามีข้อผิดพลาด
413
ใดๆ ในช่วงเวลาที่ระบุหรือไม่ (หากเกิดปัญหาในอดีต) หรือมีคำขอใดที่ยังคงล้มเหลวด้วย413
- หากพบข้อผิดพลาด
413
ที่ X-Apigee-fault-code ตรงกับค่าของprotocol.http.TooBigBody
ให้ระบุค่าของ X-Apigee-fault-sourceไม่บีบอัด
สถานการณ์ที่ 1 : ขอขนาดเปย์โหลดในรูปแบบที่ไม่ได้บีบอัด
ตัวอย่างรายการด้านบนจากบันทึกการเข้าถึง NGINX มีค่าต่อไปนี้สำหรับ X-Apigee-fault-code และ X-Apigee-fault-source
ส่วนหัวการตอบกลับ ค่า X-Apigee-fault-code protocol.http.TooBigBody
X-Apigee-fault-sourc policy
โปรดทราบว่าความยาวของคำขอ:
15360440
(14.6 MB > ขีดจำกัดที่อนุญาต)ขนาดไฟล์ที่บีบอัด
สถานการณ์ที่ 2 : ขอขนาดเปย์โหลดในรูปแบบที่บีบอัด
ตัวอย่างรายการด้านบนจากบันทึกการเข้าถึง NGINX มีค่าต่อไปนี้สำหรับ X-Apigee-fault-code และ X-Apigee-fault-code
ส่วนหัวการตอบกลับ ค่า X-Apigee-fault-code protocol.http.TooBigBody
X-Apigee-fault-source policy
โปรดทราบว่าความยาวของคำขอ:
15264
(14.9 K < ขีดจำกัดที่อนุญาต)ในสถานการณ์นี้ Apigee Edge จะส่งกลับ
413
แม้ว่าความยาวคำขอจะต่ำกว่าขีดจำกัดที่อนุญาต เนื่องจากคำขออาจส่งในรูปแบบที่บีบอัดและขนาดของเพย์โหลดเกินขีดจำกัดเมื่อยกเลิกการบีบอัดโดย Apigee Edge
สาเหตุ: ขนาดของเพย์โหลดคำขอมากกว่าขีดจำกัดที่อนุญาต
การวินิจฉัย
- กำหนดFault Code, Fault Source และขนาดเพย์โหลดคำขอสำหรับข้อผิดพลาดที่สังเกตจากบันทึกการเข้าถึง API Monitoring, เครื่องมือติดตาม หรือบันทึกการเข้าถึง NGINX ตามที่อธิบายไว้ในขั้นตอนการวินิจฉัยทั่วไปกับสถานการณ์ที่ 1 (ไม่บีบอัด)
- หาก Fault Source มีค่า
policy
หรือproxy
แสดงว่าขนาดเพย์โหลดคำขอที่แอปพลิเคชันไคลเอ็นต์ส่งไปยัง Apigee สูงกว่าขีดจำกัดที่อนุญาตใน Apigee Edge - ยืนยันขนาดเพย์โหลดคำขอตามที่กำหนดโดยขั้นตอนที่ 1
- หากเพย์โหลดมีขนาดมากกว่า 10 MB ที่อนุญาต แสดงว่าเป็นสาเหตุของข้อผิดพลาด
- หากเพย์โหลดที่มีขนาดต่ำกว่า 10 MB ก็อาจมีการส่งเพย์โหลดของคำขอในรูปแบบที่บีบอัด ไปที่ สาเหตุ: ขนาดเปย์โหลดคำขอเกินขีดจำกัดที่อนุญาตหลังจากยกเลิกการบีบอัด
- นอกจากนี้ คุณยังตรวจสอบได้ว่าขนาดเพย์โหลดของคำขอมีขนาดเกิน 10 MB ที่อนุญาตหรือไม่ โดยตรวจสอบคำขอจริงโดยทำตามขั้นตอนต่อไปนี้
- หากคุณไม่มีสิทธิ์เข้าถึงคำขอจริงจากแอปพลิเคชันไคลเอ็นต์ ให้ไปที่การแก้ปัญหา
- หากคุณมีสิทธิ์เข้าถึงคำขอจริงจากแอปพลิเคชันไคลเอ็นต์ ให้ทำตามขั้นตอนต่อไปนี้
- ยืนยันขนาดของเพย์โหลดที่ส่งไปในคำขอ
- หากคุณพบว่าขนาดของเพย์โหลดเกิน ขีดจำกัดที่อนุญาตใน Apigee Edge แสดงว่าเป็นสาเหตุของปัญหา
ตัวอย่างคำขอ
curl http://<hostalias>/testtoobigbody -k -X POST -F file=@test15mbfile -v
ในกรณีข้างต้น ไฟล์
test15mbfile
มีขนาดประมาณ 15 MB หากใช้ไคลเอ็นต์อื่นอยู่ ให้รับบันทึกไคลเอ็นต์เพื่อดูขนาดเพย์โหลดที่ส่ง
ความละเอียด
ไปที่ความละเอียด
สาเหตุ: ขนาดของเพย์โหลดคำขอเกินขีดจำกัดที่อนุญาตหลังจากการยกเลิกการบีบอัด
หากส่งเปย์โหลดคำขอในรูปแบบที่บีบอัด และตั้งค่าส่วนหัวคำขอ Content-Encoding
เป็น gzip,
Apigee จะคลายการบีบอัดเพย์โหลดคำขอ ในระหว่างขั้นตอนการยกเลิกการบีบอัด หาก Apigee พบว่าขนาดเพย์โหลดมีขนาดใหญ่กว่า 10 MB
ขีดจำกัดที่อนุญาตจะหยุดการยกเลิกการบีบอัดเพิ่มเติม และตอบกลับทันทีด้วย 413 Request Entity Too Large
พร้อมรหัสข้อผิดพลาด protocol.http.TooBigBody
การวินิจฉัย
- ระบุFault Code, Fault Source และขอขนาดเพย์โหลดสำหรับข้อผิดพลาดที่สังเกตโดยใช้บันทึก API Monitoring, เครื่องมือติดตาม หรือ NGINX Access ตามที่อธิบายไว้ในขั้นตอนการวินิจฉัยทั่วไปกับสถานการณ์ที่ 2 (บีบอัด)
- หาก Fault Source มีค่า
policy
หรือproxy
แสดงว่าขนาดเปย์โหลดคำขอที่แอปพลิเคชันไคลเอ็นต์ส่งไปยัง Apigee สูงกว่าขีดจำกัดที่อนุญาตใน Apigee Edge - ยืนยันขนาดเพย์โหลดคำขอตามที่กําหนดไว้ในขั้นตอนที่ 1
- หากเพย์โหลดมีขนาดมากกว่า 10 MB ที่อนุญาต แสดงว่าเป็นสาเหตุของข้อผิดพลาด
- หากเพย์โหลดที่มีขนาดต่ำกว่า 10 MB ก็อาจมีการส่งเพย์โหลดของคำขอในรูปแบบที่บีบอัด ในกรณีนี้ ให้ตรวจสอบขนาดที่ไม่มีการบีบอัดของเพย์โหลดคำขอที่บีบอัด
- คุณตรวจสอบได้ว่าคำขอจากไคลเอ็นต์ส่งในรูปแบบที่บีบอัดหรือไม่ และขนาดที่ไม่ได้บีบอัดใหญ่กว่าขีดจำกัดที่อนุญาตโดยใช้วิธีใดวิธีหนึ่งต่อไปนี้
Trace
วิธีตรวจสอบโดยใช้เครื่องมือติดตาม
- หากคุณบันทึกการติดตามสำหรับคำขอที่ไม่สำเร็จ โปรดดูขั้นตอนที่อธิบายไว้ในการติดตามและ
- ระบุค่าของตัวแปร client.received.content.length
- ตรวจสอบว่าคำขอจากไคลเอ็นต์มีส่วนหัวการเข้ารหัสเนื้อหา:
gzip
หรือไม่
- หากค่าของตัวแปร client.received.content.length มากกว่า
10 MB,
ค่าสูงสุดที่อนุญาตและส่วนหัวของคำขอ Content-Encrypting:
gzip
นี่คือสาเหตุของข้อผิดพลาดนี้
คำขอจริง
วิธีตรวจสอบโดยใช้คำขอจริง
- หากคุณไม่มีสิทธิ์เข้าถึงคำขอจริงจากแอปพลิเคชันไคลเอ็นต์ ให้ไปที่การแก้ปัญหา
- หากคุณมีสิทธิ์เข้าถึงคำขอจริงจากแอปพลิเคชันไคลเอ็นต์ ให้ทำตามขั้นตอนต่อไปนี้
- ยืนยันขนาดของเพย์โหลดที่ส่งในคำขอ พร้อมด้วยส่วนหัว
Content-Encoding
ที่ส่งไปในคำขอ ตรวจสอบว่าขนาดที่ไม่บีบอัดของเพย์โหลดเกิน ขีดจำกัดที่อนุญาตใน Apigee Edge หรือไม่
ตัวอย่างคำขอ
curl https://<hostalias>/testtoobigbody -k -X POST -F file=@test15mbfile.gz -H "Content-Encoding: gzip" -v
ในกรณีข้างต้น ไฟล์
test15mbfile.gz
มีขนาดไม่เกินที่จำกัดไว้ อย่างไรก็ตาม ไฟล์ที่ไม่ได้บีบอัดtest15mbfile
มีขนาดประมาณ 15 MB และส่วนหัวContent-Encoding
คือgzip
หากใช้ไคลเอ็นต์อื่น โปรดดูบันทึกไคลเอ็นต์เพื่อดูขนาดเพย์โหลดที่กำลังส่ง และระบุว่าส่วนหัว
Content-Encoding
ตั้งค่าเป็นgzip
หรือไม่
- ยืนยันขนาดของเพย์โหลดที่ส่งในคำขอ พร้อมด้วยส่วนหัว
บันทึกตัวประมวลผลข้อความ
วิธีตรวจสอบโดยใช้บันทึกตัวประมวลผลข้อความ
- หากคุณเป็นผู้ใช้ Private Cloud คุณจะใช้บันทึกตัวประมวลผลข้อความเพื่อระบุข้อมูลคีย์เกี่ยวกับข้อผิดพลาดของ HTTP
413
ได้ ตรวจสอบบันทึกของตัวประมวลผลข้อความดังนี้
/opt/apigee/var/log/edge-message-processor/logs/system.log
ค้นหาเพื่อดูว่ามีข้อผิดพลาด
413
ใดๆ ในช่วงเวลาที่ระบุหรือไม่ (หากเกิดปัญหาในอดีต) หรือมีคำขอใดที่ยังคงล้มเหลวด้วย413
สตริงการค้นหาที่คุณใช้ได้มีดังนี้
grep -ri "chunkCount"
grep -ri "RequestTooLarge"
- คุณจะเห็นบรรทัดจาก
system.log
ที่คล้ายกับรายการต่อไปนี้ (TotalRead
และchunkCount
อาจแตกต่างกันไปตามแต่ละกรณี)2021-07-06 13:29:57,544 NIOThread@1 ERROR HTTP.SERVICE - TrackingInputChannel.checkMessageBodyTooLarge() : Message is too large. TotalRead 10489856 chunkCount 2570 2021-07-06 13:29:57,545 NIOThread@1 INFO HTTP.SERVICE - ExceptionHandler.handleException() : Exception trace: com.apigee.errors.http.user.RequestTooLarge : Body buffer overflow
- ในระหว่างขั้นตอนการยกเลิกการบีบอัด เมื่อผู้ประมวลผลข้อความระบุจำนวนไบต์ที่อ่านทั้งหมดมากกว่า 10 MB ระบบจะหยุดและพิมพ์บรรทัดต่อไปนี้:
Message is too large. TotalRead 10489856 chunkCount 2570
หมายความว่าขนาดเพย์โหลดคำขอมีขนาดมากกว่า 10 MB และ Apigee จะแสดงข้อผิดพลาด
RequestTooLarge
เมื่อขนาดเริ่มเกินขีดจำกัด 10 MB โดยมีโค้ดข้อผิดพลาดเป็นprotocol.http.TooBigBody
- หากคุณบันทึกการติดตามสำหรับคำขอที่ไม่สำเร็จ โปรดดูขั้นตอนที่อธิบายไว้ในการติดตามและ
ความละเอียด
ขนาดคงที่
ตัวเลือกที่ 1 [แนะนำ]: แก้ไขแอปพลิเคชันไคลเอ็นต์ไม่ให้ส่งเพย์โหลดที่เกินขีดจำกัดที่อนุญาต
- วิเคราะห์สาเหตุที่ไคลเอ็นต์ที่ระบุส่งคำขอ / ขนาดเปย์โหลดเกินขีดจำกัดที่อนุญาตตามที่กำหนดไว้ในขีดจำกัด
หากไม่เป็นที่ต้องการ ให้แก้ไขแอปพลิเคชันไคลเอ็นต์เพื่อให้ส่งคำขอ / ขนาดเปย์โหลดน้อยกว่าขีดจำกัดที่อนุญาต
ในตัวอย่างที่กล่าวถึงข้างต้น คุณแก้ไขปัญหาได้ด้วยการส่งไฟล์ที่มีขนาดเล็กลง สมมติว่าเป็นเปย์โหลด
test5mbfile
(ขนาด 5 MB) ดังที่แสดงด้านล่างcurl https://<host>/testtoobigbody -k -X POST -F file=@test5mbfile -v
- หากต้องการส่งคำขอ/เพย์โหลดที่เกินขีดจำกัดที่อนุญาต ให้ไปที่ตัวเลือกถัดไป
รูปแบบ URL ที่ลงนาม
ตัวเลือกที่ 2 [แนะนำ]: ใช้รูปแบบ URL ที่มีการลงชื่อภายใน Apigee Javaคำขอราคาเสนอ
สำหรับเพย์โหลดที่มีขนาดใหญ่กว่า 10 MB Apigee ขอแนะนำให้ใช้รูปแบบ URL ที่มีการลงนามภายใน Apigee Javaappeal ซึ่งแสดงโดยตัวอย่าง Edge ข้อความไฮไลต์: Signed URL Generator ใน GitHub
สตรีมมิง
ตัวเลือกที่ 3 : ใช้สตรีมมิง
หากพร็อกซี API ต้องจัดการคำขอและ/หรือการตอบกลับขนาดใหญ่มาก คุณจะเปิดใช้สตรีมมิงใน Apigee ได้
CwC
ตัวเลือกที่ 4 : ใช้พร็อพเพอร์ตี้ CwC เพื่อเพิ่มขีดจำกัดบัฟเฟอร์
คุณควรใช้ตัวเลือกนี้เฉพาะในกรณีที่ไม่สามารถใช้ตัวเลือกที่แนะนำได้ เนื่องจากอาจมีปัญหาเกี่ยวกับประสิทธิภาพการทำงานหากขนาดเริ่มต้นเพิ่มขึ้น
Apigee มีพร็อพเพอร์ตี้ CwC ที่ช่วยให้เพิ่มขีดจำกัดขนาดเพย์โหลดของคำขอและการตอบกลับได้ โปรดดูรายละเอียดที่ ตั้งค่าขีดจำกัดขนาดข้อความบนเราเตอร์หรือผู้ประมวลผลข้อความ
ข้อจำกัด
Apigee คาดหวังให้แอปพลิเคชันไคลเอ็นต์และเซิร์ฟเวอร์แบ็กเอนด์ไม่ส่งขนาดเพย์โหลดที่เกินขีดจำกัดที่อนุญาตตามที่บันทึกไว้ใน Request/response size
ในขีดจำกัดของ Apigee Edge
- หากคุณเป็นผู้ใช้ Cloud Cloud ขีดจำกัดสูงสุดของขนาดเปย์โหลดคำขอและการตอบกลับจะบันทึกไว้สำหรับ
Request/response size
ในขีดจำกัดของ Apigee Edge - หากคุณเป็นผู้ใช้ Private Cloud ก็อาจแก้ไขขีดจำกัดเริ่มต้นสำหรับขนาดเปย์โหลดคำขอและการตอบกลับได้ (แม้ว่าจะไม่ใช่แนวทางปฏิบัติที่แนะนำก็ตาม) คุณระบุขนาดสูงสุดของเพย์โหลดคำขอได้โดยทำตามวิธีการในวิธีตรวจสอบขีดจำกัดปัจจุบัน
วิธีตรวจสอบขีดจำกัดปัจจุบัน
ส่วนนี้จะอธิบายวิธียืนยันว่าพร็อพเพอร์ตี้ HTTPRequest.body.buffer.limit
ได้รับการอัปเดตด้วยค่าใหม่ในตัวประมวลผลข้อความแล้ว
- ค้นหาพร็อพเพอร์ตี้
HTTPRequest.body.buffer.limit
ในไดเรกทอรี/opt/apigee/edge-message- processor/conf
ในเครื่องผู้ประมวลผลข้อความ แล้วดูว่าได้กำหนดค่าใดไปแล้วโดยใช้คำสั่งต่อไปนี้grep -ri "HTTPRequest.body.buffer.limit" /opt/apigee/edge-message-processor/conf
- ผลลัพธ์ตัวอย่างจากคำสั่งด้านบนมีดังนี้
/opt/apigee/edge-message-processor/conf/http.properties:HTTPRequest.body.buffer.limit=10m
ในตัวอย่างเอาต์พุตด้านบน ให้สังเกตว่ามีการตั้งค่าพร็อพเพอร์ตี้
HTTPRequest.body.buffer.limit
ด้วยค่า10m
ในhttp.properties
ซึ่งระบุว่าขีดจำกัดสำหรับขนาดเปย์โหลดของคำขอที่กำหนดค่าใน Apigee สำหรับ Private Cloud คือ 10 MB
หากยังต้องการความช่วยเหลือจากทีมสนับสนุนของ Apigee ให้ไปที่หัวข้อต้องรวบรวมข้อมูลการวินิจฉัย
ต้องรวบรวมข้อมูลการวินิจฉัย
รวบรวมข้อมูลการวินิจฉัยต่อไปนี้ จากนั้นติดต่อฝ่ายสนับสนุนของ Apigee Edge
หากคุณเป็นผู้ใช้ระบบคลาวด์สาธารณะ โปรดระบุข้อมูลต่อไปนี้
- ชื่อองค์กร
- ชื่อสภาพแวดล้อม
- ชื่อพร็อกซี API
- คำสั่ง curl ที่สมบูรณ์ที่ใช้ในการสร้างข้อผิดพลาด
413
ซ้ำ - ไฟล์การติดตามสำหรับคำขอ API
หากคุณเป็นผู้ใช้ Private Cloud โปรดระบุข้อมูลต่อไปนี้
- สังเกตข้อความแสดงข้อผิดพลาดสำหรับคำขอที่ไม่สำเร็จ
- ชื่อองค์กร
- ชื่อสภาพแวดล้อม
- กลุ่มพร็อกซี API
- ไฟล์การติดตามสำหรับคำขอ API ที่ล้มเหลว
- คำสั่ง curl ที่สมบูรณ์ที่ใช้ในการสร้างข้อผิดพลาด
413
ซ้ำ บันทึกการเข้าถึง NGINX
/opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log
ที่ไหน จะแทนที่ ORG, ENV และ PORT# ด้วยค่าจริง
- บันทึกระบบของผู้ประมวลผลข้อความ
/opt/apigee/var/log/edge-message-processor/logs/system.log