นโยบาย RaiseFault

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

อะไร

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

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

ตัวอย่าง

การตอบกลับข้อผิดพลาดในการคืนสินค้า

ในการใช้งานที่พบบ่อยที่สุด 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 จะทำงานตามปกติ การประมวลผลข้อผิดพลาด ประเมิน FaultRules หรือหากไม่มีกําหนดกฎข้อผิดพลาดไว้ ระบบจะยุติการประมวลผล ของคำขอ

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

การอ้างอิงองค์ประกอบอธิบายองค์ประกอบและแอตทริบิวต์ของนโยบาย 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>

&lt;RaiseFault&gt; แอตทริบิวต์

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

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

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

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

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

ไม่มี ต้องระบุ
continueOnError

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

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

เท็จ ไม่บังคับ
enabled

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

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

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

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

เท็จ เลิกใช้

&lt;DisplayName&gt; องค์ประกอบ

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

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

ไม่มี

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

การมีบุคคลอยู่ ไม่บังคับ
ประเภท สตริง

&lt;IgnoreUnresolvedVariables&gt; องค์ประกอบ

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

&lt;FaultResponse&gt; องค์ประกอบ

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

&lt;FaultResponse&gt;&lt;AssignVariable&gt; องค์ประกอบ

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

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

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

จากนั้นคุณจะอ้างอิงตัวแปรดังกล่าวในเทมเพลตข้อความภายหลังได้ในนโยบาย RaiseFault นอกจากนี้ นโยบายที่แนบกับ FaultRule จะสามารถเข้าถึงตัวแปรได้ด้วย ตัวอย่างเช่น URL ต่อไปนี้ นโยบาย 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 for Private Cloud

&lt;FaultResponse&gt;&lt;Add&gt;/&lt;Headers&gt; องค์ประกอบ

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

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

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

ไม่มี

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

สตริง

&lt;FaultResponse&gt;&lt;Copy&gt; องค์ประกอบ

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

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

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

ไม่มี

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

สตริง

Attributes

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

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

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

&lt;FaultResponse&gt;&lt;Copy&gt;/&lt;Headers&gt; องค์ประกอบ

คัดลอกส่วนหัว 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" มีเพียงรายการเดียว จะไม่มีการคัดลอก

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

ไม่มี

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

สตริง

&lt;FaultResponse&gt;&lt;Copy&gt;/&lt;StatusCode&gt; องค์ประกอบ

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

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

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

เท็จ

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

สตริง

&lt;FaultResponse&gt;&lt;Copy&gt;/&lt;ReasonPhrase&gt; องค์ประกอบ

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

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

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

เท็จ

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

สตริง

&lt;FaultResponse&gt;&lt;Remove&gt;/&lt;Headers&gt; องค์ประกอบ

นำส่วนหัว 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" และค่าที่สองของ "h3" ออก หากเป็น "h3" มีเพียงรายการเดียว ระบบก็จะไม่ลบออก

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

ไม่มี

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

สตริง

&lt;FaultResponse&gt;&lt;Set&gt; องค์ประกอบ

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

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

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

ไม่มี

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

ไม่มี

&lt;FaultResponse&gt;/&lt;Set&gt;/&lt;Headers&gt; องค์ประกอบ

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

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

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

ไม่มี

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

สตริง

&lt;FaultResponse&gt;/&lt;Set&gt;/&lt;Payload&gt; องค์ประกอบ

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

<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>

หรือตั้งแต่ระบบคลาวด์รุ่น 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">
แอตทริบิวต์ คำอธิบาย การมีบุคคลอยู่ ประเภท
contentType

หากระบุ contentType ไว้ ระบบจะกำหนดค่าให้กับ Content-Type ส่วนหัว

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

&lt;FaultResponse&gt;/&lt;Set&gt;/&lt;StatusCode&gt; องค์ประกอบ

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

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

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

เท็จ

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

บูลีน

&lt;FaultResponse&gt;/&lt;Set&gt;/&lt;ReasonPhrase&gt; องค์ประกอบ

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

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

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

เท็จ

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

บูลีน

&lt;ShortFaultReason&gt; องค์ประกอบ

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

<ShortFaultReason>true|false</ShortFaultReason>

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

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

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

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

ค่าที่ใช้ได้: true/false(ค่าเริ่มต้น)

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

เท็จ

การตรวจหาบุคคล:

ไม่บังคับ

ประเภท:

บูลีน

ตัวแปรโฟลว์

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

ตัวแปร ประเภท สิทธิ์ คำอธิบาย
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

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

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