คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
ExecutionFailed
รหัสข้อผิดพลาด
steps.jsonthreatprotection.ExecutionFailed
เนื้อหาการตอบกลับข้อผิดพลาด
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: error_description at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
ประเภทของข้อผิดพลาดและสาเหตุที่เป็นไปได้
นโยบาย JSONThreatProtection สามารถแสดงข้อผิดพลาด ExecutionFailed หลายประเภท ตารางด้านล่างแสดงรายการข้อผิดพลาดประเภทต่างๆ และสาเหตุที่เป็นไปได้
ประเภทข้อผิดพลาด | สาเหตุ |
เกินความยาวของชื่อรายการออบเจ็กต์ | เกินความยาวสตริงสูงสุดที่อนุญาตในชื่อรายการของออบเจ็กต์ |
จำนวนรายการออบเจ็กต์เกินขีดจำกัด | จำนวนรายการเกินจำนวนสูงสุดที่อนุญาตในออบเจ็กต์ |
จำนวนองค์ประกอบอาร์เรย์เกิน | จำนวนองค์ประกอบสูงสุดที่อนุญาตในอาร์เรย์ |
คอนเทนเนอร์มีความลึกเกิน | ความลึกที่ฝังเกินขีดจำกัดที่อนุญาต |
เกินความยาวค่าสตริง | เกินความยาวสูงสุดสำหรับค่าสตริง |
ออบเจ็กต์ JSON ไม่ถูกต้อง | เพย์โหลด JSON ของอินพุตไม่ถูกต้อง |
เกินความยาวของชื่อรายการออบเจ็กต์
เนื้อหาการตอบกลับข้อผิดพลาด
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded object entry name length at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
ตัวอย่างเนื้อหาการตอบกลับของข้อผิดพลาด
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded object entry name length at line 2",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้เกิดขึ้นหากเพย์โหลดของข้อความอินพุตที่ระบุโดยองค์ประกอบ <Source>
มีออบเจ็กต์ JSON ที่มีชื่อพร็อพเพอร์ตี้เกินความยาวสูงสุดที่ระบุในองค์ประกอบ <ObjectEntryNameLength>
เช่น หากระบุองค์ประกอบ <ObjectEntryNameLength>
เป็น 5 ในนโยบาย แต่เพย์โหลดข้อความอินพุตมีพร็อพเพอร์ตี้ JSON ที่มีชื่อเกิน 5 อักขระ ระบบจะแสดงข้อผิดพลาดนี้
การวินิจฉัย
ตรวจสอบข้อความแสดงข้อผิดพลาดเพื่อระบุชื่อนโยบาย JSONThreatProtection และหมายเลขบรรทัดที่ชื่อรายการยาวปรากฏขึ้น เช่น ในข้อความแสดงข้อผิดพลาดต่อไปนี้ ชื่อนโยบาย JSONThreatProtection คือ
JSON-Threat-Protection-1
และหมายเลขบรรทัดในเพย์โหลดคือ 2JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry name length at line 2
ตรวจสอบนโยบายที่คุณระบุในขั้นตอนที่ 1 และจดบันทึกค่าที่ระบุในองค์ประกอบ
<ObjectEntryNameLength>
ตัวอย่างเช่น ในนโยบาย JSONThreatProtection ต่อไปนี้
<ObjectEntryNameLength>
มีการตั้งค่าเป็น5
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>ro<perties/ Ar>rayEl<ementCount3/Arra>y<ElementCount >Conta<inerDepth12/Container>D<epth ObjectEntryCo>unt5/<Object>EntryCo<unt > Obje<ctEntryNameLength>5/<ObjectEntryNameLen>g<th Sourcerequest/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionตรวจสอบหมายเลขบรรทัดที่เจาะจง (ระบุในขั้นตอนที่ 1) ของเพย์โหลดอินพุต และตรวจสอบว่าความยาวของชื่อออบเจ็กต์มากกว่าค่าที่ระบุในองค์ประกอบ
<ObjectEntryNameLength>
(ระบุในขั้นตอนที่ 2) หรือไม่ หากชื่อออบเจ็กต์มีความยาวมากกว่าตัวเลขนั้น ข้อผิดพลาดดังกล่าวก็จะเป็นสาเหตุของข้อผิดพลาดตัวอย่างเพย์โหลดอินพุตมีดังนี้
{ "number" : 500, "stri
ng" : "text" }เพย์โหลด JSON ที่แสดงด้านบนมีพร็อพเพอร์ตี้ชื่อ
number
ที่บรรทัด 2 ซึ่งมี 6 อักขระ (ชื่อมีความยาว 6 อักขระ) เนื่องจากชื่อออบเจ็กต์มีความยาวมากกว่า 5 (ค่าที่ระบุสำหรับองค์ประกอบ<ObjectEntryNameLength>
) คุณจึงได้รับข้อผิดพลาดต่อไปนี้JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry name length at line 2
ความละเอียด
หากนโยบาย JSONThreatProtection มีไว้เพื่อป้องกันเพย์โหลดที่มีชื่อรายการออบเจ็กต์เกินค่าที่กําหนดไว้ คุณก็ควรจะได้รับข้อความแสดงข้อผิดพลาด ในกรณีนี้ คุณไม่ต้องดำเนินการใดๆ เพิ่มเติม
อย่างไรก็ตาม หากคุณระบุว่าสามารถระบุชื่อรายการออบเจ็กต์ที่ยาวขึ้นในเพย์โหลดโดยไม่มีผลกระทบใดๆ ให้แก้ไข <ObjectEntryNameLength>
เป็นค่าที่เหมาะสมตามความต้องการของคุณ
เช่น หากคิดว่าสามารถอนุญาตชื่อออบเจ็กต์ที่มีความยาวไม่เกิน 10 อักขระได้ ให้แก้ไขนโยบาย JSONThreatProtection ดังนี้
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>ro<perties/
Ar>rayEl<ementCount3/Arra>y<ElementCount
>Conta<inerDepth12/Container>De<pth
ObjectEntryCou>nt5/O<bjectE>ntryCou<nt
>Objec<tEntryNameLength1>0/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection
จำนวนรายการออบเจ็กต์เกินขีดจำกัด
เนื้อหาการตอบกลับข้อผิดพลาด
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded object entry count at line line_num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
ตัวอย่างเนื้อหาการตอบกลับของข้อผิดพลาด
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded object entry count at line 7",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้เกิดขึ้นหากเพย์โหลดข้อความอินพุตที่ระบุโดยองค์ประกอบ <Source>
มีออบเจ็กต์ JSON ที่มีรายการ (พร็อพเพอร์ตี้) มากกว่าค่าที่ระบุในองค์ประกอบ <ObjectEntryCount>
ของนโยบาย
ตัวอย่างเช่น หากองค์ประกอบ <ObjectEntryCount>
คือ 5 แต่เพย์โหลด JSON ของอินพุตมีมากกว่า 5 รายการ ระบบจะแสดงข้อผิดพลาดนี้
การวินิจฉัย
ตรวจสอบข้อความแสดงข้อผิดพลาดเพื่อระบุชื่อนโยบาย JSONThreatProtection และหมายเลขบรรทัดที่มีจำนวนรายการเกิน ตัวอย่างเช่น ในข้อความแสดงข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ
JSON-Threat-Protection-1
และหมายเลขบรรทัดในเพย์โหลดคือ7
JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry count at line 7
จดบันทึกค่าที่ระบุในองค์ประกอบ
<ObjectEntryCount>
ของนโยบาย (ระบุในขั้นตอนที่ 1)ในตัวอย่างนโยบายต่อไปนี้
<ObjectEntryCount>
มีการตั้งค่าเป็น5
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>ro<perties/ Ar>rayEl<ementCount3/Arra>y<ElementCount >Conta<inerDepth12/Container>D<epth ObjectEntryCo>unt5/<Object>EntryCo<unt > Obje<ctEntryNameLength>6/<ObjectEntryNameLen>g<th Sourcerequest/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionตรวจสอบหมายเลขบรรทัดเฉพาะ (ระบุไว้ในขั้นตอนที่ 1) ของเพย์โหลดอินพุต และตรวจสอบว่าจํานวนเอนทิตีในเพย์โหลดมากกว่าค่าที่ระบุสําหรับองค์ประกอบ
<ObjectEntryCount>
หรือไม่ (ระบุไว้ในขั้นตอนที่ 2) หากจำนวนออบเจ็กต์มากกว่าจำนวนรายการออบเจ็กต์ นั่นเป็นสาเหตุของข้อผิดพลาดตัวอย่างเพย์โหลดอินพุตมีดังนี้
{ "name" : "John", "id" : 234687, "age" : 31, "city" : &quo
t;New York", "country" : "USA", "company" : "Google" }ในเพย์โหลด JSON ที่แสดงด้านบน รายการที่ 6 จะเกิดขึ้นที่บรรทัดที่ 7 (บริษัท) เนื่องจากจํานวนรายการออบเจ็กต์ในเพย์โหลด JSON อินพุตมากกว่า 5 (ค่าที่ระบุสำหรับองค์ประกอบ
<ObjectEntryCount>
) คุณจึงได้รับข้อผิดพลาดต่อไปนี้JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded object entry count at line 7
ความละเอียด
หากนโยบาย JSONThreatProtection มีไว้เพื่อปกป้องจากเพย์โหลดที่มีจํานวนรายการออบเจ็กต์เกินเกณฑ์ที่เจาะจง คุณก็จะได้รับข้อความแสดงข้อผิดพลาด ในกรณีนี้ คุณไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม
อย่างไรก็ตาม หากคุณพิจารณาว่าสามารถรวมรายการออบเจ็กต์ได้มากขึ้นในเพย์โหลดโดยไม่มีผลกระทบใดๆ ให้แก้ไข <ObjectEntryCount>
เป็นค่าที่เหมาะสมตามความต้องการของคุณ
เช่น หากคุณคิดว่าสามารถอนุญาตรายการออบเจ็กต์ได้สูงสุด 10 รายการ ให้แก้ไขนโยบาย JSONThreatProtection ดังนี้
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>ro<perties/
Ar>rayEl<ementCount3/Arra>yE<lementCount
C>ontai<nerDepth12/ContainerD>e<pth
ObjectEntryCou>nt10/<Object>EntryCo<unt
> Obje<ctEntryNameLength>6/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection
เกินจำนวนองค์ประกอบอาร์เรย์
เนื้อหาการตอบกลับข้อผิดพลาด
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded array element count at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
ตัวอย่างเนื้อหาการตอบกลับของข้อผิดพลาด
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded array element count at line 3",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้เกิดขึ้นหากเพย์โหลดของข้อความอินพุตที่ระบุโดยองค์ประกอบ <Source>
มีอาร์เรย์ JSON ที่มีจํานวนองค์ประกอบมากกว่าตัวเลขที่ระบุในองค์ประกอบ <ArrayElementCount>
ของนโยบาย
ตัวอย่างเช่น หากระบุองค์ประกอบ <ArrayElementCount>
เป็น 3
แต่เพย์โหลดอินพุตมีอาร์เรย์ JSON ที่มีองค์ประกอบมากกว่า 3 รายการ ระบบจะแสดงข้อผิดพลาดนี้
การวินิจฉัย
ตรวจสอบข้อความแสดงข้อผิดพลาดเพื่อระบุชื่อนโยบายและหมายเลขบรรทัดที่มีความยาวเกินของอาร์เรย์ ตัวอย่างเช่น ในข้อความแสดงข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ
JSON-Threat-Protection-1
และหมายเลขบรรทัดในเพย์โหลดคือ3
JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded array element count at line 3
จดบันทึกค่าที่ระบุสำหรับองค์ประกอบ
<ArrayElementCount>
ของนโยบาย (ระบุในขั้นตอนที่ 1)ในตัวอย่างนโยบาย JSONThreatProtection ต่อไปนี้
<ArrayElementCount>
ได้รับการตั้งค่าเป็น3
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>ro<perties/ Ar>rayEl<ementCount3/Arra>y<ElementCount >Conta<inerDepth12/Container>D<epth ObjectEntryCo>unt5/<Object>EntryCo<unt > Obje<ctEntryNameLength>6/<ObjectEntryNameLen>g<th Sourcerequest/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionตรวจสอบหมายเลขบรรทัดที่เจาะจง (ระบุในขั้นตอนที่ 1) ของเพย์โหลดอินพุตและตรวจสอบว่าอาร์เรย์ที่ระบุมีจำนวนสูงกว่าตัวเลขที่ระบุในองค์ประกอบ
<ArrayElementCount>
(ระบุในขั้นตอนที่ 2) หรือไม่ หากองค์ประกอบอาร์เรย์เกินจํานวนเกิน นั่นคือสาเหตุของข้อผิดพลาดตัวอย่างเพย์โหลดอินพุตมีดังนี้
{ "name":"Ford", "models":[ "Mustang", "Endeavour"
;, "Fiesta", "EcoSport", "Focus" ] }เพย์โหลด JSON ที่แสดงด้านบนมีองค์ประกอบ 5 รายการในอาร์เรย์ชื่อ
models
ที่บรรทัด 3 เนื่องจากจำนวนขององค์ประกอบอาร์เรย์มากกว่า 3 (ค่า ระบุสำหรับเอลิเมนต์<ArrayElementCount>
) คุณได้รับข้อผิดพลาดต่อไปนี้JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded array element count at line 3
ความละเอียด
หากนโยบาย JSONThreatProtection มีไว้เพื่อปกป้องจากเพย์โหลดที่มีเกณฑ์จำนวนอาร์เรย์ที่เจาะจง คุณก็ควรจะได้รับข้อความแสดงข้อผิดพลาด ในกรณีนี้ คุณไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม
อย่างไรก็ตาม ถ้าคุณระบุว่าจำนวนองค์ประกอบในอาร์เรย์สูงกว่าสามารถรองรับได้ ให้แก้ไข <ArrayElementCount>
เป็นค่าที่เหมาะสมตามความต้องการของคุณ
ตัวอย่างเช่น หากคุณคิดว่าอนุญาตองค์ประกอบอาร์เรย์ได้สูงสุด 5 รายการ ให้แก้ไขนโยบายดังนี้
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>ro<perties/
Ar>rayEl<ementCount5/Arra>y<ElementCount
>Conta<inerDepth12/Container>D<epth
ObjectEntryCo>unt5/<Object>EntryCo<unt
> Obje<ctEntryNameLength>6/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection
คอนเทนเนอร์มีความลึกเกิน
เนื้อหาการตอบกลับข้อผิดพลาด
การรับส่งข้อมูลรันไทม์แสดงผลโค้ดตอบกลับ 500 พร้อมข้อผิดพลาดต่อไปนี้
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded container depth at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
ตัวอย่างเนื้อหาการตอบกลับของข้อผิดพลาด
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded container depth at line 5",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้เกิดขึ้นหากเพย์โหลดข้อความอินพุตที่ระบุโดยองค์ประกอบ <Source>
ประกอบด้วยออบเจ็กต์ JSON ที่มีองค์ประกอบ JSON ที่มีระดับคอนเทนเนอร์เกินระดับคอนเทนเนอร์สูงสุดที่ระบุไว้ในองค์ประกอบ <ContainerDepth>
ของนโยบาย ความลึกของคอนเทนเนอร์คือความลึกที่ฝังอยู่สูงสุดที่อนุญาตสำหรับองค์ประกอบ JSON เช่น อาร์เรย์ที่มีออบเจ็กต์ซึ่งมีออบเจ็กต์จะส่งผลให้ความลึกของคอนเทนเนอร์เท่ากับ 3
ตัวอย่างเช่น หากองค์ประกอบ <ContainerDepth>
คือ 3
แต่เพย์โหลดอินพุตมีความลึกของคอนเทนเนอร์เกินขีดจำกัดนี้ ระบบจะแสดงข้อผิดพลาดนี้
การวินิจฉัย
ตรวจสอบข้อความแสดงข้อผิดพลาดเพื่อระบุชื่อนโยบาย JSONThreatProtection และหมายเลขบรรทัดที่เกินความลึกของคอนเทนเนอร์ เช่น ในข้อความแสดงข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ
JSON-Threat-Protection-1
และหมายเลขบรรทัดในเพย์โหลดคือ5
JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded container depth at line 5
จดค่าที่ระบุสำหรับองค์ประกอบ
<ContainerDepth>
(ระบุในขั้นตอนที่ 1)ในตัวอย่างนโยบาย JSONThreatProtection ต่อไปนี้
<ContainerDepth>
ได้รับการตั้งค่าเป็น5
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>r<operties/ A>rrayE<lementCount3/Arr>a<yElementCount > Cont<ainerDepth5/Container>De<pth ObjectEntryCou>nt5/O<bjectE>ntryCou<nt >Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th Sourcerequest/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionตรวจสอบหมายเลขบรรทัดที่เจาะจง (ระบุในขั้นตอนที่ 1) ของเพย์โหลดอินพุตและตรวจสอบว่าความลึกของคอนเทนเนอร์ในเพย์โหลดสูงกว่าค่าที่ระบุในองค์ประกอบ
<ContainerDepth>
(ระบุในขั้นตอนที่ 2) หรือไม่ หากความลึกของคอนเทนเนอร์เกินกว่าจำนวนดังกล่าว นี่เองคือสาเหตุของข้อผิดพลาดตัวอย่างเพย์โหลดอินพุตมีดังนี้
{ "ContainerDepth2":[ { "ContainerDepth4":[ { "ContainerDepth6":[ "1", "2&quo
t; ] } ] } ] }เพย์โหลด JSON ที่แสดงด้านบนมีความลึกของคอนเทนเนอร์อยู่ที่ 6 ที่บรรทัดที่ 5 เนื่องจาก depth มากกว่า 5 ค่าที่ระบุสำหรับองค์ประกอบ
<ContainerDepth>
ของนโยบาย JSONThreatProtection คุณจะได้รับข้อผิดพลาดต่อไปนี้JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded container depth at line 5
ความละเอียด
หากนโยบาย JSONThreatProtection มีไว้เพื่อป้องกันเพย์โหลดที่มีความลึกของคอนเทนเนอร์เกินค่าที่ระบุ ก็คาดว่าจะมีข้อความแสดงข้อผิดพลาด ในกรณีนี้ คุณไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม
อย่างไรก็ตาม หากคุณคิดว่ายอมรับความลึกของคอนเทนเนอร์ที่สูงกว่าได้ ให้แก้ไข <ContainerDepth>
เป็นค่าที่เหมาะสมตามความต้องการของคุณ
ตัวอย่างเช่น หากคุณคิดว่าสามารถอนุญาตให้ใช้คอนเทนเนอร์ที่มีความลึกสูงสุด 10 ชั้น ให้แก้ไขนโยบายดังนี้
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>ro<perties/
Ar>rayEl<ementCount3/Arra>y<ElementCount
>Conta<inerDepth10/Container>De<pth
ObjectEntryCou>nt5/O<bjectE>ntryCou<nt
>Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection
เกินความยาวค่าสตริง
เนื้อหาการตอบกลับข้อผิดพลาด
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: JSONThreatProtection[policy_name]: Exceeded string value length at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
ตัวอย่างเนื้อหาการตอบกลับของข้อผิดพลาด
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]:
Exceeded string value length at line 3",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้เกิดขึ้นหากเพย์โหลดของข้อความอินพุตที่ระบุโดยองค์ประกอบ <Source>
มีองค์ประกอบ JSON ที่มีค่าที่มีอักขระมากกว่าที่อนุญาตโดยองค์ประกอบ <StringValueLength>
ตัวอย่างเช่น หากตั้งค่าองค์ประกอบ <StringValueLength>
ในนโยบายเป็น 50
แต่เพย์โหลดอินพุตมีองค์ประกอบอย่างน้อย 1 องค์ประกอบที่มีค่ามีอักขระมากกว่า 50 ตัว ระบบจะแสดงข้อผิดพลาดนี้
การวินิจฉัย
ตรวจสอบข้อความแสดงข้อผิดพลาดเพื่อระบุชื่อนโยบายและหมายเลขบรรทัดที่มีความยาวเกินสตริง ในตัวอย่างต่อไปนี้ ชื่อนโยบายคือบรรทัด
JSON-Threat-Protection-1 and
ในเพย์โหลด3
JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded string value length at line 3
จดค่าที่ระบุสำหรับองค์ประกอบ
<StringValueLength>
ใน (ที่ระบุไว้ในขั้นตอนที่ 1)ในตัวอย่างนโยบาย JSONThreatProtection ต่อไปนี้
<StringValueLength>
ได้รับการตั้งค่าเป็น50
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>r<operties/ A>rrayE<lementCount3/Arr>a<yElementCount > Cont<ainerDepth5/Container>De<pth ObjectEntryCou>nt5/O<bjectE>ntryCou<nt >Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th Sourcerequest/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionตรวจสอบหมายเลขบรรทัดที่เจาะจง (ระบุในขั้นตอนที่ 1) ของเพย์โหลดอินพุตและตรวจสอบว่าความยาวของค่ามากกว่าจำนวนอักขระที่ระบุไว้สำหรับองค์ประกอบ
<StringValueLength>
(ระบุในขั้นตอนที่ 2) หรือไม่ หากความยาวของค่าเกินขีดจำกัด นั่นเป็นสาเหตุของข้อผิดพลาดตัวอย่างเพย์โหลดอินพุตมีดังนี้
{ "Country": "New Zealand", "Place Name": "Taumatawhakatangihangakoauauotamateaturipukakapikimaun
gahoronukupokaiwhenuakitanatahu" }เพย์โหลด JSON ที่แสดงด้านบนมีออบเจ็กต์ชื่อ
Place Name
ที่มีค่าTaumatawhakatangihangakoauauotamateaturipukakapikimaungahoronukupokaiwhenuakitanatahu
ซึ่งมีความยาว 85 อักขระในบรรทัดที่ 3 เนื่องจากความยาวของค่ามากกว่า 50 ค่าที่ระบุในองค์ประกอบ<StringValueLength>
คุณจะได้ค่า ข้อผิดพลาดต่อไปนี้JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: JSONThreatProtection[JSON-Threat-Protection-1]: Exceeded string value length at line 3
ความละเอียด
หากนโยบาย JSONThreatProtection มีไว้เพื่อป้องกันเพย์โหลดที่มีค่าเกินความยาวสตริงที่เจาะจง ก็มักพบข้อความแสดงข้อผิดพลาด ในกรณีนี้ คุณไม่จำเป็นต้องดำเนินการใดๆ เพิ่มเติม
อย่างไรก็ตาม หากคุณพิจารณาว่าระบุความยาวค่าในเพย์โหลดได้นานขึ้น ให้แก้ไข <StringValueLength>
เป็นค่าที่เหมาะสมตามข้อกำหนดของคุณ
เช่น หากคิดว่าสามารถอนุญาตค่าได้ไม่เกิน 90 อักขระ ให้แก้ไขนโยบายดังนี้
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>r<operties/
A>rrayE<lementCount3/Arr>a<yElementCount
> Cont<ainerDepth5/Container>De<pth
ObjectEntryCou>nt5/O<bjectE>ntryCou<nt
>Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength90/StringValueLength
/JSONThreatProtection
ออบเจ็กต์ JSON ไม่ถูกต้อง
เนื้อหาการตอบกลับข้อผิดพลาด
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Execution failed. reason: string: at line line-num", "detail": { "errorcode": "steps.jsonthreatprotection.ExecutionFailed" } } }
ตัวอย่างเนื้อหาการตอบกลับของข้อผิดพลาด
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Execution failed. reason: Expecting : at line 3",
"detail": {
"errorcode": "steps.j
sonthreatprotection.ExecutionFailed"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้เกิดขึ้นหากเพย์โหลดของข้อความอินพุตที่ระบุโดยองค์ประกอบ <Source>
ในนโยบาย JSONThreatProtection ไม่ใช่ออบเจ็กต์ JSON ที่ถูกต้อง
การวินิจฉัย
ตรวจสอบข้อความแสดงข้อผิดพลาดเพื่อระบุชื่อนโยบายและหมายเลขบรรทัดที่เกิดข้อผิดพลาด ในตัวอย่างต่อไปนี้ ชื่อนโยบายคือบรรทัด
JSON-Threat-Protection-1 and
ในเพย์โหลด2
JSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: Expecting : at line 3
ตรวจสอบหมายเลขบรรทัดที่เจาะจง (ระบุในขั้นตอนที่ 1) ของเพย์โหลดอินพุตและตรวจสอบว่าออบเจ็กต์ JSON ที่ส่งผ่านในเพย์โหลดเป็นออบเจ็กต์ JSON ที่ถูกต้องหรือไม่
ตัวอย่างเพย์โหลดอินพุตมีดังนี้
{ "Longitude": 6.11499, "Latitud
e" 50.76891 }ในเพย์โหลด JSON ที่แสดงด้านบน บรรทัดที่ 3 ไม่มี
":"
(โคลอน) คุณจะได้รับข้อผิดพลาดเนื่องจากไม่ใช่ออบเจ็กต์ JSON ที่ถูกต้องJSONThreatProtection[JSON-Threat-Protection-1]: Execution failed. reason: Expecting : at line 3
ความละเอียด
ตรวจสอบว่าส่งเพย์โหลด JSON อินพุตที่ถูกต้องไปยังพร็อกซี API ที่มีนโยบาย JSONThreatProtection
สําหรับตัวอย่างที่อธิบายไว้ข้างต้น ให้แก้ไขเพย์โหลด JSON ดังนี้
{
"Longitude": 6.11499,
"Latitude
" : 50.76891
}
SourceUnavailable
รหัสข้อผิดพลาด
steps.jsonthreatprotection.SourceUnavailable
เนื้อหาการตอบกลับข้อผิดพลาด
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]:: Source[var_name] is not available" "detail": { "errorcode": "steps.jsonthreatprotection.SourceUnavailable" } } }
ตัวอย่างเนื้อหาการตอบกลับของข้อผิดพลาด
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]::
Source requests is not available",
"detail": {
"errorcode": "steps.jso
nthreatprotection.SourceUnavailable"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้เกิดขึ้นหากตัวแปร message ที่ระบุไว้ในองค์ประกอบ <Source>
ของนโยบาย JSONThreatProtection เป็นค่าใดค่าหนึ่งต่อไปนี้
- อยู่นอกขอบเขต (ใช้ไม่ได้ในขั้นตอนที่เจาะจงที่กำลังบังคับใช้นโยบาย)
- ไม่ใช่ค่า
request
,response
หรือmessage
ที่ถูกต้อง
ตัวอย่างเช่น ข้อผิดพลาดนี้จะเกิดขึ้นหากมีการตั้งค่าองค์ประกอบ <Source>
ในนโยบายเป็น
ที่ไม่มีอยู่ในขั้นตอนที่มีการบังคับใช้นโยบาย
การวินิจฉัย
ระบุชื่อนโยบายและชื่อของตัวแปรแหล่งที่มาจากข้อความแสดงข้อผิดพลาด ตัวอย่างเช่น ในข้อความแสดงข้อผิดพลาดต่อไปนี้ ชื่อนโยบายคือ
JSON-Threat-Protection-1
และตัวแปรแหล่งที่มาคือrequests
JSONThreatProtection[JSON-Threat-Protection-1]:: Source requests is not available
ตรวจสอบค่าที่ระบุสำหรับองค์ประกอบ
<Source>
ที่ระบุไว้ในขั้นตอนที่ 1ในตัวอย่างนโยบาย JSONThreatProtection ต่อไปนี้ องค์ประกอบ
<Source>
มีการตั้งค่าเป็นrequests
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>r<operties/ A>rrayE<lementCount3/Arr>a<yElementCount > Cont<ainerDepth5/Container>De<pth ObjectEntryCou>nt5/O<bjectE>ntryCoun<t O>bject<EntryNameLength20>/O<bjectEntryNameLeng>t<h Sourcerequests/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionค่าที่ถูกต้องสำหรับองค์ประกอบ
<Source>
คือrequest
,response
หรือmessage
เพราะ คำขอไม่ใช่ค่าที่ถูกต้อง และไม่อยู่ในขั้นตอนที่นโยบาย และดำเนินการอยู่ คุณได้รับข้อผิดพลาดJSONThreatProtection[JSON-Threat-Protection-1]:: Source requests is not available
ความละเอียด
ตรวจสอบว่าตัวแปรที่ตั้งค่าไว้ในองค์ประกอบ <Source>
ของนโยบาย JSONThreatProtection ที่ล้มเหลวได้รับการตั้งค่าเป็น request
, response
หรือ message
และมีอยู่ในขั้นตอนที่นโยบายดำเนินอยู่
หากต้องการแก้ไขตัวอย่างนโยบาย JSONThreatProtection ที่แสดงด้านบน คุณสามารถแก้ไของค์ประกอบ <Source>
ให้ใช้ตัวแปร request
ได้ เนื่องจากตัวแปรดังกล่าวอยู่ในขั้นตอนการส่งคำขอ
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>r<operties/
A>rrayE<lementCount3/Arr>a<yElementCount
> Cont<ainerDepth5/Container>De<pth
ObjectEntryCou>nt5/O<bjectE>ntryCou<nt
>Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th
Sourcerequest/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection
NonMessageVariable
รหัสข้อผิดพลาด
steps.jsonthreatprotection.NonMessageVariable
เนื้อหาการตอบกลับข้อผิดพลาด
{ "fault": { "faultstring": "JSONThreatProtection[policy_name]: Variable var_name does not resolve to a Message" "detail": { "errorcode": "steps.jsonthreatprotection.NonMessageVariable" } } }
ตัวอย่างเนื้อหาการตอบกลับของข้อผิดพลาด
{
"fault": {
"faultstring": "JSONThreatProtection[JSON-Threat-Protection-1]:
Variable message.content does not resolve to a Message",
"detail": {
"errorcode": "steps.json
threatprotection.NonMessageVariable"
}
}
}
สาเหตุ
ข้อผิดพลาดนี้เกิดขึ้นหากตั้งค่าองค์ประกอบ <Source>
ในนโยบาย JSONThreatProtection เป็นตัวแปรที่ไม่ใช่ประเภท message
ตัวแปรประเภทข้อความแสดงคำขอ HTTP และการตอบกลับทั้งหมด ฟังก์ชันในตัว คำขอ การตอบกลับ และข้อความตัวแปรโฟลว์ของ Apigee Edge เป็นข้อความประเภท ถึง ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรข้อความได้ที่ข้อมูลอ้างอิงตัวแปร
การวินิจฉัย
ระบุชื่อนโยบาย JSONThreatProtection และชื่อของตัวแปรแหล่งที่มา จากข้อความแสดงข้อผิดพลาด เช่น ในข้อความแสดงข้อผิดพลาดต่อไปนี้ ชื่อนโยบาย คือ
JSON-Threat-Protection-1
และตัวแปรแหล่งที่มาคือmessage.content
JSONThreatProtection[JSON-Threat-Protection-1]: Variable message.content does not resolve to a Message
ตรวจสอบองค์ประกอบ
<Source>
ของนโยบาย JSONThreatProtection (ระบุไว้ในขั้นตอนที่ 1)ในตัวอย่างนโยบาย JSONThreatProtection ต่อไปนี้
<Source>
ได้รับการตั้งค่าเป็นmessage.content
แทนmessage
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"? JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t; < DisplayNameJSON> <Threat Protection->1/Dis<playName P>r<operties/ A>rrayE<lementCount3/Arr>a<yElementCount > Cont<ainerDepth5/Container>De<pth ObjectEntryCou>nt5/O<bjectE>ntryCount O<bjectEn>tryNa<meLength20/Object>En<tryNameLength >S<ourcemessage.content/>S
ource StringValueLength50/StringValueLength /JSONThreatProtectionเนื่องจาก
message.content
ไม่ใช่ประเภทข้อความ คุณจึงได้รับข้อผิดพลาด:JSONThreatProtection[JSON-Threat-Protection-1]: Variable message.content does not resolve to a Message
ความละเอียด
ตรวจสอบว่าองค์ประกอบ <Source>
ในนโยบาย JSONThreatProtection ที่ดำเนินการไม่สำเร็จได้รับการตั้งค่าเป็นตัวแปรโฟลว์ประเภท message ที่มีอยู่ในโฟลว์ที่นโยบายทำงาน
หากต้องการแก้ไขนโยบาย ให้แก้ไของค์ประกอบ <Source>
เพื่อระบุตัวแปร
เป็นข้อความประเภท เช่น ใน JSONThreatProtection ที่ล้มเหลวคุณสามารถ
ระบุองค์ประกอบ <Source>
เป็น message
:
<?xml version="1.0" encoding="UTF-8&quo>t<; standalone="yes"?
JSONThreatProtection async="false" continueOnError="false&qu>ot; e<nabled=&quo>t;true" name="<JSON-Threat->Prote<ction-1&quo>t;
< DisplayNameJSON> <Threat Protection->1/Dis<playName
P>r<operties/
A>rrayE<lementCount3/Arr>a<yElementCount
> Cont<ainerDepth5/Container>De<pth
ObjectEntryCou>nt5/O<bjectE>ntryCou<nt
>Objec<tEntryNameLength2>0/<ObjectEntryNameLen>g<th
Sourcemessage/>S
ource
StringValueLength50/StringValueLength
/JSONThreatProtection