คุณกำลังดูเอกสารประกอบ Apigee Edge
ไปที่
เอกสารประกอบเกี่ยวกับ Apigee X. ข้อมูล
หัวข้อนี้จะอธิบายโครงสร้างของข้อผิดพลาดของนโยบาย และประเภทของตัวแปรของขั้นตอนที่ ตั้งค่าเมื่อเกิดข้อผิดพลาดในนโยบาย ข้อมูลนี้เป็นสิ่งจำเป็นในกรณีที่คุณออกแบบและ การนำการจัดการข้อผิดพลาดสำหรับพร็อกซีไปใช้
หัวข้อนี้จะสมมติว่าคุณมีความเข้าใจโดยทั่วไปเกี่ยวกับวิธีการทำงานของการจัดการข้อผิดพลาดใน 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
คือ
ชื่อข้อผิดพลาด คำนำหน้าดังกล่าวจะบอกคุณว่านโยบายประเภทใดที่ทำให้เกิดข้อผิดพลาด ข้อมูลข้างต้น
ตัวอย่างเช่น คุณจะบอกได้ว่านโยบายการดึงข้อมูลตัวแปร
ทำให้เกิดข้อผิดพลาดและชื่อข้อผิดพลาดคือ
SourceMessageNotAvailable
faultstring จะมีคําอธิบายข้อผิดพลาด สตริงข้อผิดพลาด
มักจะมีข้อมูลที่ช่วยให้คุณพบปัญหาเฉพาะที่ก่อให้เกิดข้อผิดพลาด เช่น
ชื่อของนโยบาย ชื่อของตัวแปรที่ยังไม่ได้รับคำตอบ หรืออะไรก็ตามที่ทำให้เกิดข้อผิดพลาด สำหรับ
เช่น ในข้อความแสดงข้อผิดพลาดด้านบน "foo
" เกิดขึ้นเป็นชื่อของผู้ที่ยังไม่ได้แก้ไข
ตัวแปรข้อความที่อ้างอิงในนโยบายและ "ParseJsonResponse
" คือชื่อของ
นโยบายที่ทริกเกอร์ข้อผิดพลาด
ตัวแปรที่เฉพาะต่อข้อผิดพลาดของนโยบาย
เมื่อมีการทริกเกอร์ข้อผิดพลาดของนโยบาย ระบบจะเติมค่าตัวแปรของขั้นตอนเฉพาะข้อผิดพลาดบางอย่าง เหล่านี้ ตัวแปรมีประโยชน์อย่างยิ่งในการจัดการความผิดพลาด ตามที่ได้อธิบายไว้ในหัวข้อการจัดการข้อผิดพลาด เราพบว่ามีแนวทางปฏิบัติทั่วไปในการ ดักจับข้อผิดพลาดของนโยบายที่ระบบสร้างขึ้น และดำเนินการหลังจากนั้น เช่น เพื่อสร้าง การตอบกลับข้อผิดพลาดที่กำหนดเอง ตัวอย่างเช่น ด้วยเหตุผลด้านความปลอดภัย คุณอาจต้องการป้องกันไม่ให้ไคลเอ็นต์ เพื่อดูข้อผิดพลาดจริงและรหัสสถานะที่ Edge แสดง
fault.name
ตัวแปร
เมื่อนโยบายทำให้เกิดข้อผิดพลาด ระบบจะตั้งค่าตัวแปรโฟลว์ fault.name
เป็น
error_name
ของรหัสข้อผิดพลาด (ตามที่อธิบายไว้ในส่วนก่อนหน้า) สำคัญมาก
ทั่วไปเพื่อประเมินตัวแปรนี้เพื่อเรียกใช้กฎข้อผิดพลาดตามเงื่อนไข
ต่อไปนี้คือตัวอย่างกฎข้อผิดพลาดที่ทดสอบค่าของ 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
ซึ่งตั้งค่าเป็น "จริง" หรือ "เท็จ" เมื่อ
การบังคับใช้นโยบาย ในกฎความผิดพลาด คุณจะต้องตรวจสอบว่าเมื่อใดที่ค่านั้นเป็น true --
นั่นคือ เพื่อตรวจสอบว่าเกิดข้อผิดพลาดหรือไม่ วิธีสร้างเงื่อนไขที่ตรวจสอบ
แฟล็ก [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
ตัวแปรของข้อความมีความพิเศษเนื่องจาก
ขึ้นอยู่กับบริบท ในกระบวนการคำขอ ตัวแปรนี้จะทำงานเหมือนตัวแปรคำขอ และในขั้นตอนการตอบกลับ
จะใช้เพื่อรับ/ตั้งค่าคำตอบได้ หากคุณต้องการทราบข้อมูลเพิ่มเติม โปรดดูที่ใช้
สำหรับตัวแปรข้อความ
ดูข้อมูลอ้างอิงตัวแปร
สำหรับข้อมูลเกี่ยวกับตัวแปร Edge ทั้งหมด รวมถึง error
และ
message