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

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

ใช้เครื่องมือ/เทคนิคอย่างใดอย่างหนึ่งต่อไปนี้เพื่อวิเคราะห์ข้อผิดพลาดนี้

การตรวจสอบ API

วิธีวินิจฉัยข้อผิดพลาดโดยใช้ API Monitoring

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

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

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

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

    ไม่บีบอัด

    สถานการณ์ที่ 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

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

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

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

    ไม่บีบอัด

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

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

    • ไม่มีการเข้ารหัสเนื้อหา:
    • Content-Length: 15360204

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

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

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

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

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

    • ข้อผิดพลาด: 413 Request Entity Too Large
    • เนื้อหาข้อผิดพลาด: {"fault":{"faultstring":"Body buffer overflow","detail":{"errorcode":"protocol.http.TooBigBody"}}}
  9. ไปที่เฟส AX (บันทึกข้อมูล Analytics) ในการติดตาม แล้วคลิกที่การติดตาม
  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-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

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

การวินิจฉัย

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

    Trace

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

    1. หากคุณบันทึกการติดตามสำหรับคำขอที่ไม่สำเร็จ โปรดดูขั้นตอนที่อธิบายไว้ในการติดตามและ
      1. ระบุค่าของตัวแปร client.received.content.length
      2. ตรวจสอบว่าคำขอจากไคลเอ็นต์มีส่วนหัวการเข้ารหัสเนื้อหา: gzip หรือไม่
    2. หากค่าของตัวแปร client.received.content.length มากกว่า 10 MB, ค่าสูงสุดที่อนุญาตและส่วนหัวของคำขอ Content-Encrypting: 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 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

  1. หากคุณเป็นผู้ใช้ Cloud Cloud ขีดจำกัดสูงสุดของขนาดเปย์โหลดคำขอและการตอบกลับจะบันทึกไว้สำหรับ 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 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