413 เอนทิตีที่ขอใหญ่เกินไป - TooBigBody

คุณกำลังดูเอกสารประกอบ 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 สาธารณะและ Private Cloud
ขนาดเพย์โหลดคำขอเกินขีดจำกัดที่อนุญาตหลังจาก การยกเลิกการบีบอัด ขนาดเพย์โหลดที่ส่งในรูปแบบที่บีบอัดโดยแอปพลิเคชันไคลเอ็นต์โดยเป็นส่วนหนึ่งของ HTTP คำขอไปยัง Apigee Edge เกินขีดจำกัดที่อนุญาตเมื่อคลายการบีบอัดโดย Apigee Edge ผู้ใช้ Edge สาธารณะและ Private Cloud

ขั้นตอนการวินิจฉัยทั่วไป

ใช้เครื่องมือ/เทคนิคต่อไปนี้เพื่อวินิจฉัยข้อผิดพลาดนี้

การตรวจสอบ API

วิธีวินิจฉัยข้อผิดพลาดโดยใช้การตรวจสอบ API

  1. ลงชื่อเข้าใช้ Apigee Edge UI ในฐานะผู้ใช้ที่มี บทบาทที่เหมาะสม
  2. เปลี่ยนเป็นองค์กรที่ต้องการตรวจสอบปัญหา

  3. ไปที่ วิเคราะห์ > การตรวจสอบ API > หน้าตรวจสอบ
  4. เลือกกรอบเวลาที่คุณพบข้อผิดพลาด
  5. คุณอาจเลือกตัวกรองพร็อกซีเพื่อจำกัดรหัสข้อผิดพลาดให้แคบลง
  6. พล็อตรหัสข้อผิดพลาดเทียบกับเวลา
  7. เลือกเซลล์ที่มีรหัสข้อผิดพลาด protocol.http.TooBigBody และ รหัสสถานะ 413ดังที่แสดงด้านล่าง

  8. ข้อมูลเกี่ยวกับรหัสข้อผิดพลาด protocol.http.TooBigBody แสดงเป็น แสดงอยู่ด้านล่าง

  9. คลิก ดูบันทึก และขยายแถวสำหรับคำขอที่ล้มเหลว จากนั้น จาก หน้าต่าง Logs โดยให้จดรายละเอียดดังที่แสดงด้านล่าง

    ไม่บีบอัด

    สถานการณ์ที่ 1: ส่งเพย์โหลดคำขอในรูปแบบที่ไม่ได้บีบอัด

    จากหน้าต่างบันทึก โปรดสังเกตรายละเอียดต่อไปนี้

    • รหัสสถานะ: 413
    • แหล่งที่มาของข้อผิดพลาด: proxy
    • รหัสข้อผิดพลาด: protocol.http.TooBigBody
    • ความยาวคำขอ(ไบต์): 15360440 (~15 MB)

    หากแหล่งที่มาของข้อผิดพลาดมีค่า proxy ระบบจะแสดงรหัสข้อผิดพลาด มีค่า protocol.http.TooBigBody และความยาวของคำขอ มีขนาดใหญ่กว่า 10 MB จะระบุไว้ว่าคำขอ HTTP จากไคลเอ็นต์ ขนาดเพย์โหลดคำขอมากกว่าขีดจำกัดที่อนุญาตใน Apigee

    ขนาดไฟล์ที่บีบอัด

    สถานการณ์ที่ 2: ส่งเพย์โหลดคำขอในรูปแบบที่บีบอัด

    จากหน้าต่าง Logs ให้จดรายละเอียดต่อไปนี้

    • รหัสสถานะ: 413
    • แหล่งที่มาของข้อผิดพลาด: proxy
    • รหัสข้อผิดพลาด: protocol.http.TooBigBody
    • ความยาวคำขอ(ไบต์): 15264 (~15kB)

    หากแหล่งที่มาของข้อผิดพลาดมีค่า proxy ระบบจะแสดงรหัสข้อผิดพลาด มีค่า protocol.http.TooBigBody และความยาวของคำขอคือ น้อยกว่า 10 MB จะระบุไว้ว่าคำขอ HTTP จากไคลเอ็นต์ ขนาดเพย์โหลดคำขอต่ำกว่าขีดจำกัดที่อนุญาตในรูปแบบที่บีบอัด แต่ ขนาดเพย์โหลดเกินขีดจำกัดที่อนุญาตเมื่อยกเลิกการบีบอัดโดย Apigee

Trace

วิธีวินิจฉัยข้อผิดพลาดโดยใช้เครื่องมือติดตาม

  1. เปิดใช้เซสชันการติดตาม และ
    • รอให้เกิดข้อผิดพลาด 413 Request Entity Too Large หรือ
    • หากคุณทำให้เกิดปัญหาซ้ำได้ ให้เรียกใช้ API และทำซ้ำ ข้อผิดพลาด 413 Request Entity Too Large รายการ
  2. ตรวจสอบว่าเปิดใช้แสดงข้อมูลโฟลว์ทั้งหมดแล้ว

  3. เลือกคำขอที่ไม่สำเร็จรายการหนึ่งและตรวจสอบการติดตาม
  4. ไปยังระยะคำขอที่ได้รับจากไคลเอ็นต์

    ไม่บีบอัด

    สถานการณ์ที่ 1: ส่งเพย์โหลดคำขอในรูปแบบที่ไม่ได้บีบอัด

    โปรดทราบข้อมูลต่อไปนี้

    • การเข้ารหัสเนื้อหา: ไม่มี
    • ความยาวของเนื้อหา: 15360204

    ขนาดไฟล์ที่บีบอัด

    สถานการณ์ที่ 2: ส่งเพย์โหลดคำขอในรูปแบบที่บีบอัด

    โปรดทราบข้อมูลต่อไปนี้

    • การเข้ารหัสเนื้อหา: gzip
    • ความยาวของเนื้อหา: 14969
    • ประเภทเนื้อหา: application/x-gzip
  5. ดำเนินการตามขั้นตอนต่างๆ ของการติดตามและค้นหาตำแหน่งที่เกิดข้อผิดพลาด
  6. โดยทั่วไป คุณจะพบข้อผิดพลาดในขั้นตอนหลังจากคำขอได้รับจาก เฟสลูกค้าดังที่แสดงด้านล่าง

  7. จดค่าของข้อผิดพลาดจากการติดตาม การติดตามตัวอย่างข้างต้นแสดงสิ่งต่อไปนี้
    • ข้อผิดพลาด: Body buffer overflow
    • error.class: com.apigee.errors.http.user.RequestTooLarge
  8. ไปที่ Response Sent to Client และบันทึกค่าของข้อผิดพลาดจาก การติดตาม ตัวอย่างการติดตามด้านล่างแสดงข้อมูลต่อไปนี้

    • ข้อผิดพลาด: 413 Request Entity Too Large
    • เนื้อหาข้อผิดพลาด: {"fault":{"faultstring":"Body buffer overflow","detail":{"errorcode":"protocol.http.TooBigBody"}}}
  9. ไปที่ระยะ AX (Analytics Data Recorded) ในการติดตามและคลิก
  10. ในส่วนรายละเอียดระยะ ให้เลื่อนลงไปที่อ่านตัวแปร

  11. ระบุค่าของตัวแปร client.received.content.length ซึ่งระบุข้อมูลต่อไปนี้
    • ขนาดจริงของเพย์โหลดคำขอเมื่อส่งในรูปแบบที่ไม่ได้บีบอัด และ
    • ขนาดของเพย์โหลดคำขอเมื่อยกเลิกการบีบอัดโดย Apigee เมื่อเพย์โหลดคือ ที่ส่งในรูปแบบที่บีบอัด ซึ่งจะเป็นค่าเดียวกันกับค่าของรายการที่อนุญาตเสมอ (10 MB) ในสถานการณ์นี้

    ไม่บีบอัด

    สถานการณ์ที่ 1: เพย์โหลดคำขอในรูปแบบที่ไม่มีการบีบอัด

    ตัวแปรclient.received.content.length: 15360204

    ขนาดไฟล์ที่บีบอัด

    สถานการณ์ที่ 2: เพย์โหลดคำขอในรูปแบบที่บีบอัด

    ตัวแปรclient.received.content.length: 10489856

  12. ตารางต่อไปนี้อธิบายสาเหตุที่ Apigee แสดงข้อผิดพลาด 413 ทั้ง 2 สถานการณ์นี้ขึ้นอยู่กับค่าของตัวแปรclient.received.content.length ดังนี้
    สถานการณ์ ค่าของ client.received.content.length เหตุผลที่ล้มเหลว
    เพย์โหลดคำขอในรูปแบบที่ไม่บีบอัด ~15 MB ขนาด > ขนาดที่จำกัด 10 MB
    เพย์โหลดคำขอในรูปแบบที่บีบอัด ~10 MB

    เกินขนาดที่จำกัดเมื่อคลายการบีบอัด

NGINX

วิธีวินิจฉัยข้อผิดพลาดโดยใช้บันทึกการเข้าถึง NGINX

  1. หากคุณเป็นผู้ใช้ Private Cloud คุณสามารถใช้บันทึกการเข้าถึง NGINX ในการระบุ ข้อมูลคีย์เกี่ยวกับข้อผิดพลาด HTTP 413
  2. ตรวจสอบบันทึกการเข้าถึง NGINX ดังต่อไปนี้

    /opt/apigee/var/log/edge-router/nginx/ORG~ENV.PORT#_access_log

  3. ค้นหาเพื่อดูว่ามีข้อผิดพลาด 413 รายการเกิดขึ้นในช่วงระยะเวลาหนึ่งๆ หรือไม่ (หาก เกิดขึ้นในอดีต) หรือหากมีคำขอที่ยังคงล้มเหลว 413
  4. หากคุณพบข้อผิดพลาด 413 ที่มีการจับคู่ X-Apigee-fault-code ค่าของ protocol.http.TooBigBody แล้วกำหนดค่าของแอตทริบิวต์ X-Apigee-fault-source.

    ไม่บีบอัด

    สถานการณ์ที่ 1 : ขนาดเพย์โหลดคำขอในรูปแบบที่ไม่มีการบีบอัด

    ตัวอย่างรายการข้างต้นจากบันทึกการเข้าถึง NGINX มีค่าต่อไปนี้สำหรับ X-Apigee-fault-code และ X-Apigee-fault-code

    ส่วนหัวการตอบกลับ ค่า
    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

สาเหตุ: ขนาดเพย์โหลดคำขอเกินขีดจำกัดที่อนุญาต

การวินิจฉัย

  1. กำหนดรหัสข้อผิดพลาด แหล่งที่มาของข้อผิดพลาด และขนาดเพย์โหลดคำขอสำหรับพร็อพเพอร์ตี้ ข้อผิดพลาดที่พบโดยใช้การตรวจสอบ API, เครื่องมือติดตาม หรือบันทึกการเข้าถึง NGINX ตามที่อธิบายไว้ใน ขั้นตอนการวิเคราะห์ทั่วไปกับสถานการณ์ที่ 1 (ไม่บีบอัด)
  2. หากแหล่งที่มาของข้อผิดพลาดมีค่าpolicy หรือ proxy ระบุว่าขนาดเพย์โหลดคำขอที่แอปพลิเคชันไคลเอ็นต์ส่งไปยัง Apigee มีขนาดใหญ่กว่า ขีดจำกัดที่อนุญาตใน Apigee Edge
  3. ยืนยันขนาดเพย์โหลดคำขอตามที่ระบุจากขั้นตอนที่ 1
  4. คุณตรวจสอบได้ว่าขนาดเพย์โหลดคำขอเท่ากับ > จริงหรือไม่ จำกัด 10 MB ที่อนุญาตโดย ตรวจสอบคำขอจริงตามขั้นตอนต่อไปนี้
    1. หากคุณไม่มีสิทธิ์เข้าถึงคำขอจริงจากแอปพลิเคชันไคลเอ็นต์ ให้ไปที่ การแก้ปัญหา
    2. หากคุณมีสิทธิ์เข้าถึงคำขอจริงจากแอปพลิเคชันไคลเอ็นต์ ให้ดำเนินการ ขั้นตอนต่อไปนี้
      1. ยืนยันขนาดของเพย์โหลดที่ส่งผ่านในคำขอ
      2. หากคุณพบว่าเพย์โหลดมีขนาดใหญ่กว่า ขีดจำกัดที่อนุญาตใน Apigee Edge นี่เองคือสาเหตุของปัญหา
      3. ตัวอย่างคำขอ

        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

การวินิจฉัย

  1. กำหนดรหัสข้อผิดพลาด แหล่งที่มาของข้อผิดพลาด และขนาดของเพย์โหลดคำขอ สำหรับข้อผิดพลาดที่พบโดยใช้การตรวจสอบ API, เครื่องมือการติดตาม หรือบันทึกการเข้าถึง NGINX ตามที่อธิบายไว้ใน ขั้นตอนการวิเคราะห์ทั่วไปกับสถานการณ์ที่ 2 (บีบอัด)
  2. หากแหล่งที่มาของข้อผิดพลาดมีค่าpolicy หรือproxy ซึ่งเป็นการระบุว่าขนาดเพย์โหลดคำขอที่แอปพลิเคชันไคลเอ็นต์ส่งไปยัง Apigee นั้นสูงกว่า เกินขีดจำกัดที่อนุญาตใน Apigee Edge
  3. ตรวจสอบขนาดเพย์โหลดคำขอตามที่ระบุจากขั้นตอนที่ 1
    • หากขนาดเพย์โหลด > ไฟล์ต้องมีขนาดไม่เกิน 10 MB ดังนี้
    • หากขนาดเพย์โหลด < จำกัดที่ 10 MB ดังนั้น เป็นไปได้ว่าคำขอ ระบบจะส่งเพย์โหลดในรูปแบบที่บีบอัด ในกรณีนี้ ให้ตรวจสอบขนาดที่ไม่มีการบีบอัดของไฟล์ เพย์โหลดคำขอที่บีบอัด
  4. คุณสามารถตรวจสอบได้ว่ามีการส่งคำขอจากไคลเอ็นต์ในรูปแบบที่บีบอัดหรือไม่ และ ขนาดที่ไม่ได้บีบอัดมีค่าเกินขีดจำกัดที่อนุญาตโดยใช้ค่าใดค่าหนึ่งต่อไปนี้ วิธีการ:

    Trace

    วิธีตรวจสอบโดยใช้เครื่องมือติดตาม

    1. หากคุณได้บันทึกการติดตามสำหรับคำขอที่ล้มเหลว โปรดดูขั้นตอนโดยละเอียดใน Traceและ
      1. ระบุค่าของตัวแปร client.received.content.length
      2. ตรวจสอบว่าคำขอจากไคลเอ็นต์มี การเข้ารหัสเนื้อหา: หรือไม่: gzip ส่วนหัว
    2. หากค่าของตัวแปร client.received.content.length มากกว่าค่าตัวแปร 10 MB ขีดจำกัดที่อนุญาตและส่วนหัวของคำขอ การเข้ารหัสเนื้อหา: gzip นั่นก็คือสาเหตุของข้อผิดพลาดนี้

    คำขอจริง

    วิธีตรวจสอบโดยใช้คำขอจริงมีดังนี้

    1. หากคุณไม่มีสิทธิ์เข้าถึงคำขอจริงจากแอปพลิเคชันไคลเอ็นต์ ให้ไปที่ การแก้ปัญหา
    2. หากคุณมีสิทธิ์เข้าถึงคำขอจริงจากแอปพลิเคชันไคลเอ็นต์ ให้ดำเนินการ ขั้นตอนต่อไปนี้
      1. ยืนยันขนาดของเพย์โหลดที่ส่งผ่านในคำขอพร้อมกับ ส่งส่วนหัว Content-Encoding ในคำขอแล้ว
      2. ตรวจสอบว่าขนาดเพย์โหลดที่ไม่ได้บีบอัดมีขนาดใหญ่กว่า ขีดจำกัดที่อนุญาตใน 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

    บันทึกของผู้ประมวลผลข้อความ

    วิธีตรวจสอบโดยใช้บันทึกของโปรแกรมประมวลผลข้อความ

    1. หากคุณเป็นผู้ใช้ Private Cloud คุณสามารถใช้บันทึกของตัวประมวลผลข้อความเพื่อระบุ ข้อมูลคีย์เกี่ยวกับข้อผิดพลาด HTTP 413
    2. ตรวจสอบบันทึกของตัวประมวลผลข้อความดังนี้

      /opt/apigee/var/log/edge-message-processor/logs/system.log

    3. ค้นหาว่ามีข้อผิดพลาด 413 รายการในช่วงเวลาที่ระบุหรือไม่ (หาก เกิดขึ้นในอดีต) หรือมีคำขอใดที่ยังคงไม่สำเร็จด้วย 413

      คุณสามารถใช้สตริงการค้นหาต่อไปนี้

      grep -ri "chunkCount"
      
      grep -ri "RequestTooLarge"
      
    4. คุณจะพบเส้นทางจาก 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
      
    5. ในระหว่างขั้นตอนการยกเลิกการบีบอัด ทันทีที่ตัวประมวลผลข้อความระบุจำนวนรวม ไบต์ที่อ่านคือ > ขนาด 10 MB กล้องจะหยุดและพิมพ์บรรทัดต่อไปนี้
      Message is too large.  TotalRead 10489856 chunkCount 2570
      

      แสดงว่าขนาดเพย์โหลดคำขอมีขนาดเกิน 10 MB และ Apigee มีการส่งข้อมูล ข้อผิดพลาด RequestTooLarge เมื่อขนาดเริ่มเกินขีดจำกัด 10 MB ที่มีรหัสข้อผิดพลาดเป็น protocol.http.TooBigBody

ความละเอียด

แก้ไขขนาด

ตัวเลือกที่ 1 [แนะนำ]: แก้ไขแอปพลิเคชันไคลเอ็นต์ไม่ให้ส่งขนาดเพย์โหลดที่ใหญ่กว่า ขีดจำกัดที่อนุญาต

  1. วิเคราะห์สาเหตุที่ไคลเอ็นต์ที่เฉพาะเจาะจงส่งคำขอ / ขนาดเพย์โหลดเกินที่อนุญาต จำกัดตามที่กำหนดไว้ในขีดจำกัด
  2. หากไม่พึงประสงค์ ให้แก้ไขแอปพลิเคชันไคลเอ็นต์ให้ส่งคำขอ / เพย์โหลด ขนาดน้อยกว่าขีดจำกัดที่อนุญาต

    ในตัวอย่างที่พูดถึงข้างต้น คุณสามารถแก้ไขปัญหาโดยการส่งไฟล์ขนาดเล็กลง สมมติว่ามีเพย์โหลด test5mbfile (ขนาด 5 MB) ดังที่แสดงด้านล่าง

    curl https://<host>/testtoobigbody -k -X POST -F file=@test5mbfile -v
    

  3. หากต้องการส่งคำขอ/เพย์โหลดเกินขีดจำกัดที่อนุญาต ให้ไปที่ ตัวเลือกถัดไป

รูปแบบ URL ที่ลงนาม

ตัวเลือกที่ 2 [แนะนำ]: ใช้รูปแบบ URL ที่มีการรับรองภายใน Apigee Javacallout

สำหรับเพย์โหลดที่มีขนาดใหญ่กว่า 10 MB Apigee แนะนำให้ใช้รูปแบบ URL ที่มีการรับรองภายใน Apigee Javacallout ที่แสดงโดย ข้อความไฮไลต์ Edge: ตัวอย่างเครื่องมือสร้าง URL ที่ลงนามใน GitHub

สตรีมมิง

ตัวเลือกที่ 3 : ใช้สตรีมมิง

หากพร็อกซี API ของคุณต้องจัดการคำขอและ/หรือการตอบกลับที่มีขนาดใหญ่มาก คุณสามารถเปิดใช้ สตรีมมิงใน Apigee

CwC

ตัวเลือกที่ 4 : ใช้พร็อพเพอร์ตี้ CwC เพื่อเพิ่มขีดจำกัดบัฟเฟอร์

ควรใช้ตัวเลือกนี้เฉพาะเมื่อคุณไม่สามารถใช้ตัวเลือกที่แนะนำ เนื่องจากอาจมี เป็นปัญหาด้านประสิทธิภาพหากมีการเพิ่มขนาดเริ่มต้น

Apigee มอบสิทธิประโยชน์ CwC ที่ทำให้เพิ่ม ขนาดเพย์โหลดคำขอและการตอบกลับ ดูรายละเอียดได้ที่ ตั้งค่าขนาดสูงสุดของข้อความบนเราเตอร์หรือตัวประมวลผลข้อความ

จำกัดสูงสุด

Apigee คาดว่าแอปพลิเคชันไคลเอ็นต์และเซิร์ฟเวอร์แบ็กเอนด์จะไม่ส่งเพย์โหลดที่มีขนาดใหญ่กว่า ขีดจำกัดที่อนุญาตสำหรับ Request/response size ใน ขีดจำกัด Apigee Edge

  1. หากคุณเป็นผู้ใช้ระบบคลาวด์สาธารณะ ขีดจำกัดสูงสุดสำหรับคำขอและการตอบกลับ ขนาดเพย์โหลดที่บันทึกไว้สำหรับ Request/response size ใน ขีดจำกัด Apigee Edge
  2. หากเป็นผู้ใช้ Private Cloud คุณอาจได้แก้ไขค่าเริ่มต้น ขีดจำกัดสำหรับขนาดเพย์โหลดคำขอและการตอบกลับ (แม้ว่าจะไม่ใช่แนวทางปฏิบัติที่แนะนำก็ตาม) คุณกำหนดขีดจำกัดขนาดเพย์โหลดคำขอสูงสุดได้โดยทำตามวิธีการใน วิธีตรวจสอบขีดจำกัดปัจจุบัน

วิธีตรวจสอบขีดจำกัดปัจจุบัน

ส่วนนี้จะอธิบายวิธียืนยันว่าพร็อพเพอร์ตี้ HTTPRequest.body.buffer.limit อัปเดตด้วยค่าใหม่ในตัวประมวลผลข้อความแล้ว

  1. ค้นหาคุณสมบัติในเครื่องประมวลผลข้อความ HTTPRequest.body.buffer.limit ในไดเรกทอรี /opt/apigee/edge-message- processor/conf แล้วตรวจสอบว่าได้ตั้งค่าอะไรโดยใช้ค่าต่อไปนี้ คำสั่ง:
    grep -ri "HTTPRequest.body.buffer.limit" /opt/apigee/edge-message-processor/conf
    
  2. ตัวอย่างผลลัพธ์จากคำสั่งด้านบนมีดังนี้
    /opt/apigee/edge-message-processor/conf/http.properties:HTTPRequest.body.buffer.limit=10m
    
  3. ในตัวอย่างเอาต์พุตด้านบน จะเห็นว่าพร็อพเพอร์ตี้ มีการตั้งค่า HTTPRequest.body.buffer.limit ด้วยค่า 10m ใน http.properties

    ค่านี้ระบุว่าขีดจำกัดสำหรับขนาดเพย์โหลดคำขอที่กำหนดค่าใน Apigee สำหรับ Private ระบบคลาวด์มีขนาด 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