นโยบาย RaiseFault

คุณกำลังดูเอกสารประกอบของ Apigee Edge
ไปที่เอกสารประกอบของ Apigee X
ข้อมูล

อะไร

สร้างข้อความที่กำหนดเองเพื่อตอบสนองต่อเงื่อนไขข้อผิดพลาด ใช้ RaiseFault เพื่อกำหนด การตอบสนองของข้อผิดพลาดที่ส่งคืนไปยังแอปที่ขอเมื่อเงื่อนไขบางอย่างเกิดขึ้น

สำหรับข้อมูลทั่วไปเกี่ยวกับการจัดการข้อผิดพลาด โปรดดูการจัดการข้อผิดพลาด

ลองฟัง

การตอบกลับ FaultResponse

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

<RaiseFault name="404">
 <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
 <FaultResponse>
   <Set>
     <StatusCode>404</StatusCode>
     <ReasonPhrase>The resource requested was not found</ReasonPhrase>
   </Set>
 </FaultResponse>
</RaiseFault>

เพย์โหลดการคืนสินค้า FaultResponse

ตัวอย่างที่ซับซ้อนมากขึ้นต้องส่งคืนเพย์โหลดการตอบสนองข้อผิดพลาดที่กำหนดเอง รวมถึงส่วนหัว HTTP และรหัสสถานะ HTTP ในตัวอย่างต่อไปนี้ การตอบกลับข้อผิดพลาดจะมีการเติมข้อมูลไว้ในข้อความ XML ที่มีรหัสสถานะ HTTP ที่ Edge ได้รับจากบริการแบ็กเอนด์ และส่วนหัวที่มีประเภทของข้อผิดพลาดที่เกิดขึ้น

<RaiseFault name="ExceptionHandler">
 <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
 <FaultResponse>
   <Set>
     <Payload contentType="text/xml">
       <root>Please contact support@company.com</root>
     </Payload>
     <StatusCode>{response.status.code}</StatusCode>
     <ReasonPhrase>Server error</ReasonPhrase>
   </Set>
   <Add>
     <Headers>
       <Header name="FaultHeader">{fault.name}</Header>
     </Headers>
   </Add>
 </FaultResponse>
</RaiseFault>

ดูรายการตัวแปรทั้งหมดที่พร้อมใช้งานสำหรับการป้อนข้อความ FaultResponse แบบไดนามิกได้ที่ข้อมูลอ้างอิงตัวแปร

จัดการข้อผิดพลาดเกี่ยวกับคำขอราคาเสนอของบริการ


เกี่ยวกับนโยบาย RaiseFault

Apigee Edge ช่วยให้คุณจัดการข้อยกเว้นที่กำหนดเองได้โดยใช้นโยบายประเภท RaiseFault นโยบาย RaiseFault ซึ่งคล้ายกับนโยบาย AssignMessage ให้คุณสร้างการตอบสนองข้อผิดพลาดที่กำหนดเองเพื่อตอบสนองเงื่อนไขข้อผิดพลาด

ใช้นโยบาย RaiseFault เพื่อกำหนดการตอบสนองของข้อผิดพลาดที่ส่งคืนไปยังแอปที่ส่งคำขอเมื่อเกิดเงื่อนไขข้อผิดพลาดที่เจาะจงขึ้น การตอบกลับข้อผิดพลาดอาจประกอบด้วยส่วนหัว HTTP, พารามิเตอร์การค้นหา และเพย์โหลดของข้อความ การตอบกลับข้อผิดพลาดที่กำหนดเองอาจมีประโยชน์กับนักพัฒนาแอปและผู้ใช้ปลายทางของแอปมากกว่าข้อความแสดงข้อผิดพลาดทั่วไปหรือรหัสการตอบกลับ HTTP

เมื่อดำเนินการ นโยบาย RaiseFault จะโอนการควบคุมจากโฟลว์ปัจจุบันไปยังโฟลว์ข้อผิดพลาด ซึ่งจะส่งการตอบกลับข้อผิดพลาดที่กำหนดไปยังแอปไคลเอ็นต์ที่ส่งคำขอ เมื่อโฟลว์ข้อความเปลี่ยนเป็นโฟลว์ข้อผิดพลาด จะไม่มีการประมวลผลนโยบายเพิ่มเติม ระบบจะข้ามขั้นตอนการประมวลผลที่เหลือทั้งหมด และจะส่งกลับการตอบสนองของข้อผิดพลาดไปยังแอปที่ส่งคำขอโดยตรง

คุณสามารถใช้ RaiseFault ใน ProxyEndpoint หรือ TargetEndpoint โดยปกติแล้ว คุณจะแนบเงื่อนไขไว้กับนโยบาย RaiseFault หลังจากเรียกใช้ RaiseFault แล้ว Apigee จะทำการประมวลผลข้อผิดพลาดตามปกติ, ประเมิน Fault Rules หรือหากไม่มีการกำหนดกฎข้อผิดพลาดไว้ Apigee จะยุติการประมวลผลคำขอ

การอ้างอิงองค์ประกอบ

การอ้างอิงองค์ประกอบจะอธิบายองค์ประกอบและแอตทริบิวต์ของนโยบาย RaiseFault

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<RaiseFault async="false" continueOnError="false" enabled="true" name="Raise-Fault-1">
    <DisplayName>RaiseFault 1</DisplayName>
    <FaultResponse>
        <AssignVariable>
          <Name/>
          <Value/>
        </AssignVariable>
        <Add>
            <Headers/>
        </Add>
        <Copy source="request">
            <Headers/>
            <StatusCode/>
            <ReasonPhrase/>
        </Copy>
        <Remove>
            <Headers/>
        </Remove>
        <Set>
            <Headers/>
            <Payload/>
            <ReasonPhrase/>
            <StatusCode/>
        </Set>
    </FaultResponse>
    <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
</RaiseFault>

แอตทริบิวต์ <RaiseFault>

<RaiseFault async="false" continueOnError="false" enabled="true" name="Raise-Fault-1">

ตารางต่อไปนี้อธิบายแอตทริบิวต์ที่ใช้ร่วมกันในองค์ประกอบระดับบนสุดของนโยบายทั้งหมด

แอตทริบิวต์ คำอธิบาย ค่าเริ่มต้น การมีบุคคลอยู่
name

ชื่อภายในของนโยบาย ค่าของแอตทริบิวต์ name มีตัวอักษร ตัวเลข ช่องว่าง ขีดกลาง ขีดล่าง และจุด ค่านี้ต้องมีอักขระไม่เกิน 255 ตัว

(ไม่บังคับ) ใช้องค์ประกอบ <DisplayName> เพื่อติดป้ายกำกับนโยบายในเครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติที่แตกต่างออกไป

ไม่มีข้อมูล จำเป็น
continueOnError

ตั้งค่าเป็น false เพื่อแสดงผลข้อผิดพลาดเมื่อนโยบายล้มเหลว ซึ่งถือเป็นเรื่องปกติสำหรับนโยบายส่วนใหญ่

ตั้งค่าเป็น true เพื่อให้การดำเนินการโฟลว์ดำเนินต่อไปได้แม้ว่านโยบายจะล้มเหลวก็ตาม

false ไม่บังคับ
enabled

ตั้งค่าเป็น true เพื่อบังคับใช้นโยบาย

ตั้งค่าเป็น false เพื่อปิดนโยบาย ระบบจะไม่บังคับใช้นโยบายแม้ว่าจะยังแนบอยู่กับขั้นตอนก็ตาม

จริง ไม่บังคับ
async

แอตทริบิวต์นี้เลิกใช้งานแล้ว

false เลิกใช้

องค์ประกอบ <DisplayName>

ใช้เพิ่มเติมจากแอตทริบิวต์ name เพื่อติดป้ายกำกับนโยบายในเครื่องมือแก้ไขพร็อกซี UI การจัดการด้วยชื่อที่เป็นภาษาธรรมชาติที่แตกต่างออกไป

<DisplayName>Policy Display Name</DisplayName>
ค่าเริ่มต้น

ไม่มีข้อมูล

หากคุณไม่ใส่องค์ประกอบนี้ ระบบจะใช้ค่าของแอตทริบิวต์ name ของนโยบาย

การมีบุคคลอยู่ ไม่บังคับ
Type สตริง

องค์ประกอบ < ignoreUnresolvedVariable>

(ไม่บังคับ) ไม่สนใจข้อผิดพลาดของตัวแปรที่ยังไม่ได้แก้ไขในโฟลว์ ค่าที่ถูกต้อง: true/false true เริ่มต้น

อีลิเมนต์ <FaultResponse>

(ไม่บังคับ) กำหนดข้อความตอบกลับที่ส่งไปยังไคลเอ็นต์ที่ส่งคำขอ FaultResponse ใช้การตั้งค่าเดียวกันกับนโยบาย AssignMessage (ใช้ไม่ได้ใน Apigee Edge สำหรับ Private Cloud)

องค์ประกอบ <FaultResponse><AssignVariable>

กําหนดค่าให้กับตัวแปรโฟลว์ปลายทาง หากไม่มีตัวแปรโฟลว์อยู่ AssignVariable จะสร้างตัวแปรนั้นขึ้นมา

ตัวอย่างเช่น ใช้โค้ดต่อไปนี้เพื่อตั้งค่าตัวแปรชื่อ myFaultVar ในนโยบาย RaiseFault

<FaultResponse>
  <AssignVariable>
    <Name>myFaultVar</Name>
    <Value>42</Value>
  </AssignVariable>
  ...
</FaultResponse>

จากนั้นคุณจะอ้างอิงตัวแปรนั้นในเทมเพลตข้อความภายหลังได้ในนโยบาย RaiseFault นอกจากนี้ นโยบายที่แนบมากับ FaultRule จะเข้าถึงตัวแปรได้เช่นกัน ตัวอย่างเช่น นโยบาย AssignMessage ต่อไปนี้ใช้ตัวแปรที่ตั้งค่าไว้ใน RaiseFault เพื่อตั้งค่าส่วนหัวในการตอบกลับข้อผิดพลาด

<AssignMessage enabled="true" name="Assign-Message-1">
  <Add>
    <Headers>
      <Header name="newvar">{myFaultVar}</Header>
    </Headers>
  </Add>
  <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
  <AssignTo createNew="false" transport="http" type="response"/>
</AssignMessage>

<AssignVariable> ในนโยบาย RaiseFault ใช้ไวยากรณ์เดียวกันกับองค์ประกอบ <AssignVariable> ในนโยบาย AssignMessage โปรดทราบว่าขณะนี้ฟังก์ชันนี้ยังไม่พร้อมใช้งานใน Apigee Edge สำหรับ Private Cloud

องค์ประกอบ <FaultResponse><Add>/<Headers>

เพิ่มส่วนหัว HTTP ในข้อความแสดงข้อผิดพลาด โปรดทราบว่าส่วนหัวที่ว่างเปล่า <Add><Headers/></Add> จะไม่เพิ่มส่วนหัวใดๆ ตัวอย่างนี้คัดลอกค่าของตัวแปรโฟลว์ request.user.agent ไปยังส่วนหัว

<Add>
    <Headers>
        <Header name="user-agent">{request.user.agent}</Header>
    </Headers>
</Add>

ค่าเริ่มต้น:

ไม่มีข้อมูล

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

สตริง

องค์ประกอบ <FaultResponse><Copy>

คัดลอกข้อมูลจากข้อความที่ระบุโดยแอตทริบิวต์ source ไปยังข้อความแสดงข้อผิดพลาด

    <Copy source="request">
        <Headers/>
        <StatusCode/>
        <ReasonPhrase/>
    </Copy>

ค่าเริ่มต้น:

ไม่มีข้อมูล

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

สตริง

Attributes

 <Copy source="response">
แอตทริบิวต์ คำอธิบาย การมีบุคคลอยู่ Type
source

ระบุออบเจ็กต์ต้นทางของสำเนา

  • หากไม่ได้ระบุ source ระบบจะถือว่าเป็นข้อความธรรมดา เช่น หากนโยบายอยู่ในโฟลว์คำขอ ต้นทางจะเป็นออบเจ็กต์ request ตามค่าเริ่มต้น หากนโยบายอยู่ในขั้นตอนการตอบกลับ ระบบจะใช้ออบเจ็กต์ response เป็นค่าเริ่มต้น หากยกเว้นแหล่งที่มา คุณจะใช้การอ้างอิงแบบสัมบูรณ์ไปยังตัวแปรโฟลว์เป็นแหล่งที่มาของสำเนาได้ เช่น ระบุค่าเป็น {request.header.user-agent}
  • หากแก้ไขตัวแปรต้นทางไม่ได้ หรือแปลงเป็นประเภทที่ไม่ใช่ข้อความ <Copy> จะไม่ตอบสนอง
ไม่บังคับ สตริง

องค์ประกอบ <FaultResponse><Copy>/<Headers>

คัดลอกส่วนหัว HTTP ที่ระบุจากต้นทางไปยังข้อความแสดงข้อผิดพลาด หากต้องการคัดลอกส่วนหัวทั้งหมด ให้ระบุ <Copy><Headers/></Copy>.

<Copy source='request'>
    <Headers>      
        <Header name="headerName"/>
    </Headers> 
</Copy>

หากมีส่วนหัวหลายรายการที่มีชื่อเดียวกัน ให้ใช้ไวยากรณ์ต่อไปนี้

<Copy source='request'>
    <Headers>
      <Header name="h1"/>
      <Header name="h2"/>
      <Header name="h3.2"/>
    </Headers>
</Copy>

ตัวอย่างนี้คัดลอก "h1", "h2" และค่าที่สองของ "h3" หาก "h3" มีเพียงค่าเดียว ระบบจะไม่คัดลอกค่านั้น

ค่าเริ่มต้น:

ไม่มีข้อมูล

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

สตริง

องค์ประกอบ <FaultResponse><Copy>/<StatusCode>

รหัสสถานะ HTTP ที่จะคัดลอกจากออบเจ็กต์ที่ระบุโดยแอตทริบิวต์ต้นทางไปยังข้อความแสดงข้อผิดพลาด

<Copy source='response'>
    <StatusCode>404</StatusCode>      
</Copy>

ค่าเริ่มต้น:

false

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

สตริง

องค์ประกอบ <FaultResponse><Copy>/<reasonPhrase>

คำอธิบายเหตุผลที่จะคัดลอกจากออบเจ็กต์ที่ระบุโดยแอตทริบิวต์แหล่งที่มาไปยังข้อความแสดงข้อผิดพลาด

<Copy source='response'>     
    <ReasonPhrase>The resource requested was not found.</ReasonPhrase>     
</Copy>

ค่าเริ่มต้น:

false

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

สตริง

องค์ประกอบ <FaultResponse><Remove>/<Headers>

นำส่วนหัว HTTP ที่ระบุออกจากข้อความแสดงข้อผิดพลาด หากต้องการนำส่วนหัวทั้งหมดออก ให้ระบุ <Remove><Headers/></Remove> ตัวอย่างนี้นําส่วนหัว user-agent ออกจากข้อความ

<Remove>     
    <Headers>      
        <Header name="user-agent"/>     
    </Headers> 
</Remove>

หากมีส่วนหัวหลายรายการที่มีชื่อเดียวกัน ให้ใช้ไวยากรณ์ต่อไปนี้

<Remove>
    <Headers>
      <Header name="h1"/>
      <Header name="h2"/>
      <Header name="h3.2"/>
    </Headers>
</Remove>

ตัวอย่างนี้จะนำ "h1", "h2" และค่าที่ 2 ของ "h3" ออก หาก "h3" มีเพียงค่าเดียว ระบบจะไม่นำค่าดังกล่าวออก

ค่าเริ่มต้น:

ไม่มีข้อมูล

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

สตริง

องค์ประกอบ <FaultResponse><Set>

ตั้งค่าข้อมูลในข้อความแสดงข้อผิดพลาด

    <Set>
        <Headers/>
        <Payload> </Payload>
        <StatusCode/>
        <ReasonPhrase/>
    </Set>

ค่าเริ่มต้น:

ไม่มีข้อมูล

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

ไม่มีข้อมูล

องค์ประกอบ <FaultResponse>/<Set>/<Headers>

ตั้งค่าหรือเขียนทับส่วนหัว HTTP ในข้อความแสดงข้อผิดพลาด โปรดทราบว่าส่วนหัวที่ว่างเปล่า <Set><Headers/></Set> ไม่ได้ตั้งค่าส่วนหัวใดๆ ตัวอย่างนี้ตั้งค่าส่วนหัว user-agent เป็นตัวแปรข้อความที่ระบุด้วยองค์ประกอบ <AssignTo>

<Set>
    <Headers>
        <Header name="user-agent">{request.header.user-agent}</Header>     
    </Headers>
</Set>

ค่าเริ่มต้น:

ไม่มีข้อมูล

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

สตริง

องค์ประกอบ <FaultResponse>/<Set>/<Payload>

ตั้งค่าเพย์โหลดของข้อความแสดงข้อผิดพลาด

<Set>
    <Payload contentType="text/plain">test1234</Payload>
</Set>

ตั้งค่าเพย์โหลด JSON:

<Set>
    <Payload contentType="application/json">
        {"name":"foo", "type":"bar"}
    </Payload>
</Set>

ในเพย์โหลด JSON คุณแทรกตัวแปรโดยใช้แอตทริบิวต์ variablePrefix และ variableSuffix ที่มีอักขระตัวคั่นได้ดังตัวอย่างต่อไปนี้

<Set>
    <Payload contentType="application/json" variablePrefix="@" variableSuffix="#">
        {"name":"foo", "type":"@variable_name#"}
    </Payload>
</Set>

หรือสำหรับ Cloud รุ่น 16.08.17 คุณยังสามารถใช้วงเล็บปีกกาเพื่อแทรกตัวแปรได้ ดังนี้

<Set>
    <Payload contentType="application/json">
        {"name":"foo", "type":"{variable_name}"}
    </Payload>
</Set>

ตั้งค่าเพย์โหลดแบบผสมใน XML ดังนี้

<Set>
    <Payload contentType="text/xml">
        <root>
          <e1>sunday</e1>
          <e2>funday</e2>
          <e3>{var1}</e3>
    </Payload>
</Set>

ค่าเริ่มต้น:

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

สตริง

Attributes

 
<Payload contentType="content_type" variablePrefix="char" variableSuffix="char">
แอตทริบิวต์ คำอธิบาย การมีบุคคลอยู่ Type
contentType

หากมีการระบุ contentType ระบบจะกำหนดค่าของ contentType ให้กับส่วนหัว Content-Type

ไม่บังคับ สตริง
variablePrefix (ไม่บังคับ) ระบุตัวคั่นข้างหน้าในตัวแปรโฟลว์ เนื่องจากเพย์โหลด JSON ใช้อักขระ "{" เริ่มต้นไม่ได้ ไม่บังคับ ชาร์
variableSuffix (ไม่บังคับ) ระบุตัวคั่นต่อท้ายในตัวแปรโฟลว์ เนื่องจากเพย์โหลด JSON ใช้อักขระ "}" เริ่มต้นไม่ได้ ไม่บังคับ ชาร์

องค์ประกอบ <FaultResponse>/<Set>/<StatusCode>

ตั้งค่ารหัสสถานะของการตอบกลับ

<Set source='request'>
    <StatusCode>404</StatusCode>
</Set>

ค่าเริ่มต้น:

false

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

บูลีน

องค์ประกอบ <FaultResponse>/<Set>/<reasonPhrase>

กำหนดข้อความเหตุผลของคำตอบ

<Set source='request'>     
    <ReasonPhrase>The resource requested was not found.</ReasonPhrase>
</Set>

ค่าเริ่มต้น:

false

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

บูลีน

องค์ประกอบ <ShortFaultWhy>

ระบุให้แสดงเหตุผลข้อผิดพลาดสั้นๆ ในการตอบกลับ

<ShortFaultReason>true|false</ShortFaultReason>

โดยค่าเริ่มต้น สาเหตุของข้อผิดพลาดในการตอบกลับของนโยบายคือ

"fault":{"faultstring":"Raising fault. Fault name : Raise-Fault-1","detail":{"errorcode":"errorCode"}}}

หากต้องการให้ข้อความอ่านง่ายขึ้น คุณจะตั้งค่าองค์ประกอบ <ShortFaultReason> เป็น "จริง" เพื่อย่อ faultstring ให้เหลือเฉพาะชื่อนโยบายได้โดยทำดังนี้

"fault":{"faultstring":"Raise-Fault-1","detail":{"errorcode":"errorCode"}}}

ค่าที่ใช้ได้: true/false(default)

ค่าเริ่มต้น:

false

สถานที่ตั้ง:

ไม่บังคับ

ประเภท:

บูลีน

ตัวแปรโฟลว์

ตัวแปรโฟลว์จะเปิดใช้ลักษณะการทำงานแบบไดนามิกของนโยบายและโฟลว์ตอนรันไทม์ โดยอิงตามส่วนหัว HTTP, เนื้อหาข้อความ หรือบริบทโฟลว์ ตัวแปรโฟลว์ที่กำหนดไว้ล่วงหน้าต่อไปนี้จะพร้อมใช้งานหลังจากนโยบาย RaiseFault ทำงาน ดูข้อมูลเพิ่มเติมเกี่ยวกับตัวแปรโฟลว์ได้ที่ข้อมูลอ้างอิงตัวแปร

ตัวแปร Type สิทธิ์ คำอธิบาย
fault.name สตริง อ่านอย่างเดียว เมื่อนโยบาย RaiseFault ทำงาน ระบบจะตั้งค่าตัวแปรนี้เป็นสตริง RaiseFault เสมอ
fault.type สตริง อ่านอย่างเดียว แสดงประเภทความผิดพลาดในข้อผิดพลาด และจะแสดงสตริงที่ว่างเปล่าหากไม่มีข้อมูล
fault.category สตริง อ่านอย่างเดียว แสดงหมวดหมู่ความผิดในข้อผิดพลาด และหากไม่มี จะแสดงสตริงว่าง

ตัวอย่างการใช้งาน RaiseFault

ตัวอย่างต่อไปนี้ใช้เงื่อนไขเพื่อบังคับให้มี queryparam ที่มีชื่อ zipcode ในคำขอขาเข้า หากไม่มี queryparam อยู่ โฟลว์จะยกข้อผิดพลาดผ่าน RaiseFault:

<Flow name="flow-1">
  <Request>
    <Step>
        <Name>RF-Error-MissingQueryParam</Name>
        <Condition>request.queryparam.zipcode = null</Condition>
    </Step>
   ...
   </Request>
   ...
   <Condition>(proxy.pathsuffix MatchesPath "/locations") and (request.verb = "GET")</Condition>
</Flow>
ข้อมูลต่อไปนี้จะแสดงให้เห็นถึงสิ่งที่จะเกิดขึ้นใน RaiseFault
<RaiseFault name='RF-Error-MissingQueryParam'>
  <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables>
  <FaultResponse>
    <Set>
      <Payload contentType='application/json'>{
  "error" : {
    "code" : 400.02,
    "message" : "invalid request. Pass a zipcode queryparam."
  }
}
</Payload>
      <StatusCode>400</StatusCode>
      <ReasonPhrase>Bad Request</ReasonPhrase>
    </Set>
  </FaultResponse>
</RaiseFault>

การอ้างอิงข้อผิดพลาด

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

ข้อผิดพลาดเกี่ยวกับรันไทม์

ข้อผิดพลาดเหล่านี้อาจเกิดขึ้นเมื่อนโยบายทำงาน

รหัสข้อผิดพลาด สถานะ HTTP สาเหตุ
steps.raisefault.RaiseFault 500 ดูสตริงข้อผิดพลาด

ข้อผิดพลาดในการทำให้ใช้งานได้

ไม่มี

ตัวแปรของข้อผิดพลาด

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

ตัวแปร สถานที่ ตัวอย่าง
fault.name="fault_name" fault_name คือชื่อของข้อผิดพลาดตามที่แสดงในตารางข้อผิดพลาดรันไทม์ด้านบน ชื่อข้อผิดพลาดคือส่วนสุดท้ายของโค้ดข้อผิดพลาด fault.name = "RaiseFault"
raisefault.policy_name.failed policy_name คือชื่อที่ผู้ใช้ระบุของนโยบายที่เป็นข้อผิดพลาด raisefault.RF-ThrowError.failed = true

ตัวอย่างการตอบกลับข้อผิดพลาด

{
   "fault":{
      "detail":{
         "errorcode":"steps.raisefault.RaiseFault"
      },
      "faultstring":"Raising fault. Fault name: [name]"
   }
}

สคีมา

นโยบายแต่ละประเภทจะกำหนดโดยสคีมา XML (.xsd) โปรดทราบว่าสคีมานโยบายมีอยู่ใน GitHub

หัวข้อที่เกี่ยวข้อง

ดูการจัดการข้อผิดพลาด