คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่
เอกสารประกอบของ Apigee X info
หัวข้อนี้อธิบายโครงสร้างของข้อผิดพลาดของนโยบายและตัวแปรโฟลว์ประเภทต่างๆ ที่ตั้งค่าไว้เมื่อเกิดข้อผิดพลาดของนโยบาย ข้อมูลนี้มีความสำคัญอย่างยิ่งหากคุณกำลังออกแบบและ ติดตั้งใช้งานการจัดการข้อผิดพลาดสำหรับพร็อกซี
หัวข้อนี้ถือว่าคุณมีความเข้าใจทั่วไปเกี่ยวกับวิธีการทำงานของการจัดการข้อผิดพลาดใน Edge และ ทราบว่ากฎข้อผิดพลาดคืออะไร หากต้องการทบทวน โปรดดู การจัดการข้อผิดพลาด ข้อมูลในส่วนนี้จะ ช่วยคุณในการไปยังส่วนต่างๆ และใช้ข้อมูลอ้างอิงข้อผิดพลาดของนโยบายด้วย
เกี่ยวกับคำตอบเริ่มต้นสำหรับข้อผิดพลาดของนโยบาย
เมื่อนโยบายแสดงข้อผิดพลาด Edge จะเข้าสู่โฟลว์ข้อผิดพลาดทันทีและสร้างข้อความแสดงข้อผิดพลาด ข้อความที่ระบบสร้างขึ้นนี้เป็นออบเจ็กต์ JSON ที่มีข้อมูล 2 ส่วน ได้แก่ errorcode และ faultstring
เช่น
{ "fault":{ "detail":{ "errorcode":"steps.extractvariables.SourceMessageNotAvailable" }, "faultstring":"foo message is not available for ExtractVariable: ParseJsonResponse" } }
มาดูรายละเอียดของข้อความแสดงข้อผิดพลาดนี้กัน
errorcode ประกอบด้วย คำนำหน้า และชื่อ
ข้อผิดพลาด ดังนี้ [prefix].[error_name] ในตัวอย่างข้างต้น
"steps.extractvariables" คือคำนำหน้า และ SourceMessageNotAvailable คือ
ชื่อข้อผิดพลาด คำนำหน้าจะบอกคุณว่านโยบายประเภทใดที่สร้างข้อผิดพลาด ในตัวอย่างข้างต้น คุณจะเห็นว่านโยบาย Extract Variables สร้างข้อผิดพลาด และชื่อข้อผิดพลาดคือ
SourceMessageNotAvailable
faultstring มีคำอธิบายข้อผิดพลาด โดยปกติแล้ว Fault String
จะมีคำใบ้ที่จะช่วยคุณค้นหาปัญหาที่เฉพาะเจาะจงซึ่งทำให้เกิดข้อผิดพลาด เช่น
ชื่อนโยบาย ชื่อตัวแปรที่ยังไม่ได้รับการแก้ไข หรือสิ่งอื่นๆ ที่ทำให้เกิดข้อผิดพลาด ตัวอย่างเช่น ในข้อความแสดงข้อผิดพลาดข้างต้น "foo" เป็นชื่อตัวแปรข้อความที่ยังไม่ได้รับการแก้ไขซึ่งมีการอ้างอิงในนโยบาย และ "ParseJsonResponse" เป็นชื่อนโยบายที่ทริกเกอร์ข้อผิดพลาด
ตัวแปรที่เฉพาะเจาะจงสำหรับข้อผิดพลาดของนโยบาย
เมื่อมีการทริกเกอร์ข้อผิดพลาดของนโยบาย ระบบจะป้อนข้อมูลลงในตัวแปรโฟลว์ที่เฉพาะเจาะจงกับข้อผิดพลาด ตัวแปรเหล่านี้ มีประโยชน์อย่างยิ่งในการจัดการข้อผิดพลาด ตามที่อธิบายไว้ในหัวข้อ การจัดการข้อผิดพลาด แนวทางปฏิบัติทั่วไปคือการ ดักจับข้อผิดพลาดของนโยบายที่ระบบสร้างขึ้นและดำเนินการในภายหลัง เช่น สร้าง คำตอบข้อผิดพลาดที่กำหนดเอง ตัวอย่างเช่น คุณอาจต้องการป้องกันไม่ให้ไคลเอ็นต์เห็นข้อผิดพลาดและรหัสสถานะจริงที่ Edge แสดงผลด้วยเหตุผลด้านความปลอดภัย
ตัวแปร fault.name
เมื่อนโยบายแสดงข้อผิดพลาด ระบบจะตั้งค่าตัวแปรโฟลว์ fault.name เป็นส่วน
error_name ของ Errorcode (ตามที่อธิบายไว้ในส่วนก่อนหน้า) โดยทั่วไปแล้ว เรามักจะประเมินตัวแปรนี้เพื่อเรียกใช้กฎข้อผิดพลาดแบบมีเงื่อนไข
ตัวอย่างกฎข้อผิดพลาดที่ทดสอบค่าของ fault.name
<faultrule name="VariableOfNonMsgType"<>/faultrule><FaultRule name="Source Message Not Available Fault">
<Step>
<Name>AM-CustomErrorMessage</Name>
<Condition>(fault.name Matches "SourceMessageNotAvailable") </Condition>
</Step>
</FaultRule>สิ่งที่คุณต้องจำไว้คือเมื่อนโยบายทริกเกอร์ข้อผิดพลาด ระบบจะตั้งค่าตัวแปร fault.name
เป็นชื่อข้อผิดพลาดเสมอ
ตัวแปร
[prefix].[policy_name].failed
นอกเหนือจาก fault.name แล้ว ตัวแปรอีกรายการที่นักพัฒนาซอฟต์แวร์มักจะตรวจสอบคือแฟล็ก
[prefix].[policy_name].failed ซึ่งตั้งค่าเป็น "จริง" หรือ "เท็จ" เมื่อนโยบายทำงาน ในกฎข้อผิดพลาด คุณจะต้องตรวจสอบว่าแฟล็กนี้เป็นจริง หรือไม่ ซึ่งหมายความว่าเป็นการตรวจสอบว่าเกิดข้อผิดพลาดขึ้นหรือไม่ วิธีสร้างเงื่อนไขที่ตรวจสอบแฟล็ก
[prefix].[policy_name].failed คุณต้องทราบ
2 สิ่งต่อไปนี้เพื่อตรวจสอบตัวแปรนี้อย่างถูกต้อง
- ชื่อ นโยบายที่คุณกำลังตรวจสอบ ซึ่งเป็นค่าของแอตทริบิวต์ name ของนโยบาย ไม่ใช่ชื่อที่แสดง แอตทริบิวต์นี้จะรวมอยู่ใน XML ของคำจำกัดความนโยบายเสมอ
- คำนำหน้า ที่เฉพาะเจาะจงกับนโยบายประเภทที่คุณกำลังตรวจสอบ (เราจะ อธิบายวิธีค้นหาคำนำหน้าด้านล่าง)
ตัวอย่างกฎข้อผิดพลาดอีกรายการ โปรดสังเกตในเงื่อนไขภายนอกว่าชื่อตัวแปร
[prefix].[policy_name].failed มีรูปแบบอย่างไร ในกรณีนี้ คำนำหน้าคือ
extractvariables และชื่อนโยบายคือ ParseJsonResponse ในกรณีนี้ กฎข้อผิดพลาดจะทำงานก็ต่อเมื่อตัวแปรนี้เป็น "จริง" และเคล็ดลับคือ เนื่องจากกฎข้อผิดพลาด
อาจมีหลายขั้นตอน รูปแบบนี้จึงเป็นวิธีที่ดีในการจัดระเบียบกฎข้อผิดพลาดเป็น
บล็อก
<faultrule name="VariableOfNonMsgType"></faultrule><FaultRule name="Extract Variable Faults"> <Step> <Name>AM-CustomErrorMessage</Name> <Condition>(fault.name Matches "SourceMessageNotAvailable") </Condition> </Step> <Condition>(extractvariables.ParseJsonResponse.failed = true) </Condition> </FaultRule>
เกี่ยวกับตัวแปร
error และ message
ตัวแปร error ใช้ได้ในโฟลว์ข้อผิดพลาดของ
พร็อกซีเท่านั้น คุณสามารถรับข้อมูลที่เป็นประโยชน์จากตัวแปรข้อผิดพลาด เช่น ข้อความแสดงข้อผิดพลาด รหัสสถานะ
วลีเหตุผล และอื่นๆ รูปแบบการจัดรูปแบบสำหรับตัวแปรข้อผิดพลาดมีดังนี้
error.[error_component] = [value]
เช่น
error.message = "request message is not available for ExtractVariable:
ParseJsonResponse"
และ
error.status.code = "500"
ตัวแปร message ยังพร้อมใช้งานในโฟลว์ข้อผิดพลาดและใช้เพื่อวัตถุประสงค์ที่คล้ายกับตัวแปร error ได้ ตัวแปร Message มีความพิเศษเนื่องจากเป็นตัวแปรตามบริบท
ในโฟลว์คำขอ ตัวแปรนี้จะทำงานเหมือนตัวแปรคำขอ และในโฟลว์การตอบกลับ คุณสามารถใช้ตัวแปรนี้เพื่อรับ/ตั้งค่าการตอบกลับได้
หากต้องการดูข้อมูลเพิ่มเติม โปรดดูUse
cases for message variables
โปรดดูข้อมูลอ้างอิงตัวแปร
เพื่อดูข้อมูลเกี่ยวกับตัวแปรทั้งหมดของ Edge รวมถึง error และ
message