রেইসফল্ট নীতি

আপনি Apigee Edge-এর ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন
.info- তে যান।

কী

কোনো ত্রুটির প্রতিক্রিয়ায় একটি কাস্টম বার্তা তৈরি করে। একটি নির্দিষ্ট পরিস্থিতি দেখা দিলে অনুরোধকারী অ্যাপে ফেরত পাঠানো হয় এমন একটি ফল্ট রেসপন্স নির্ধারণ করতে 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>

ত্রুটি প্রতিক্রিয়া পেলোড ফেরত দিন

আরও জটিল একটি উদাহরণে, HTTP হেডার এবং একটি HTTP স্ট্যাটাস কোড সহ একটি কাস্টম ফল্ট রেসপন্স পেলোড ফেরত দেওয়া হয়। নিম্নলিখিত উদাহরণে, ফল্ট রেসপন্সটি একটি XML মেসেজ দ্বারা পূরণ করা হয়েছে, যেটিতে ব্যাকএন্ড সার্ভিস থেকে Edge-এর প্রাপ্ত HTTP স্ট্যাটাস কোড এবং সংঘটিত ফল্টের ধরন সম্বলিত একটি হেডার রয়েছে:

<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 পলিসিটি নিয়ন্ত্রণ বর্তমান ফ্লো থেকে Error ফ্লো-তে স্থানান্তর করে, যা তখন অনুরোধকারী ক্লায়েন্ট অ্যাপে নির্ধারিত ফল্ট রেসপন্সটি ফেরত পাঠায়। যখন মেসেজ ফ্লো Error ফ্লো-তে পরিবর্তিত হয়, তখন আর কোনো পলিসি প্রসেসিং ঘটে না। বাকি সমস্ত প্রসেসিং ধাপ এড়িয়ে যাওয়া হয় এবং ফল্ট রেসপন্সটি সরাসরি অনুরোধকারী অ্যাপে ফেরত পাঠানো হয়।

আপনি একটি ProxyEndpoint বা TargetEndpoint-এ RaiseFault ব্যবহার করতে পারেন। সাধারণত, আপনি RaiseFault পলিসির সাথে একটি Condition সংযুক্ত করবেন। 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>

<RaiseFault> অ্যাট্রিবিউট

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

নিম্নলিখিত সারণী সমস্ত নীতির মূল উপাদানগুলির জন্য সাধারণ বৈশিষ্ট্যগুলি বর্ণনা করে:

বৈশিষ্ট্য বর্ণনা ডিফল্ট উপস্থিতি
name

নীতির অভ্যন্তরীণ নাম। name বৈশিষ্ট্যের মানটিতে অক্ষর, সংখ্যা, স্পেস, হাইফেন, আন্ডারস্কোর এবং পিরিয়ড থাকতে পারে। এই মান 255 অক্ষরের বেশি হতে পারে না।

ঐচ্ছিকভাবে, ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে <DisplayName> উপাদানটি ব্যবহার করুন।

N/A প্রয়োজন
continueOnError

একটি নীতি ব্যর্থ হলে একটি ত্রুটি ফেরত দিতে false সেট করুন৷ এটি বেশিরভাগ নীতির জন্য প্রত্যাশিত আচরণ।

একটি নীতি ব্যর্থ হওয়ার পরেও ফ্লো এক্সিকিউশন চালিয়ে যেতে true সেট করুন৷

মিথ্যা ঐচ্ছিক
enabled

নীতি প্রয়োগ করতে true সেট করুন৷

নীতি বন্ধ করতে false সেট করুন। নীতিটি প্রবাহের সাথে সংযুক্ত থাকলেও তা কার্যকর করা হবে না।

সত্য ঐচ্ছিক
async

এই বৈশিষ্ট্যটি অবমূল্যায়ন করা হয়েছে৷

মিথ্যা অবচয়

<DisplayName> উপাদান

ম্যানেজমেন্ট UI প্রক্সি এডিটরে নীতিটিকে একটি ভিন্ন, প্রাকৃতিক-ভাষা নামের সাথে লেবেল করতে name বৈশিষ্ট্য ছাড়াও ব্যবহার করুন।

<DisplayName>Policy Display Name</DisplayName>
ডিফল্ট

N/A

আপনি এই উপাদানটি বাদ দিলে, নীতির name বৈশিষ্ট্যের মান ব্যবহার করা হবে।

উপস্থিতি ঐচ্ছিক
টাইপ স্ট্রিং

<IgnoreUnresolvedVariables> উপাদান

(ঐচ্ছিক) ফ্লো-তে থাকা যেকোনো অমীমাংসিত ভেরিয়েবল ত্রুটি উপেক্ষা করে। বৈধ মান: true/false। ডিফল্ট true

<FaultResponse> উপাদান

(ঐচ্ছিক) অনুরোধকারী ক্লায়েন্টকে ফেরত পাঠানো প্রতিক্রিয়া বার্তা নির্ধারণ করে। FaultResponse, AssignMessage পলিসির মতোই সেটিংস ব্যবহার করে (Apigee Edge for Private Cloud-এ উপলব্ধ নয়)।

<FaultResponse><AssignVariable> উপাদান

গন্তব্য ফ্লো ভেরিয়েবলে একটি মান নির্ধারণ করে। যদি ফ্লো ভেরিয়েবলটি বিদ্যমান না থাকে, তবে AssignVariable এটি তৈরি করে।

উদাহরণস্বরূপ, RaiseFault পলিসিতে myFaultVar নামের ভেরিয়েবলটি সেট করতে নিম্নলিখিত কোডটি ব্যবহার করুন:

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

RaiseFault পলিসির <AssignVariable> এলিমেন্টের সিনট্যাক্স, AssignMessage পলিসির <AssignVariable> এলিমেন্টের সিনট্যাক্সের মতোই। উল্লেখ্য যে, এই কার্যকারিতাটি বর্তমানে Apigee Edge for 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>

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

বৈশিষ্ট্য

 <Copy source="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>

ডিফল্ট:

মিথ্যা

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

<FaultResponse><Copy>/<ReasonPhrase> উপাদান

সোর্স অ্যাট্রিবিউট দ্বারা নির্দিষ্ট অবজেক্ট থেকে কারণের বিবরণটি এরর মেসেজে কপি করতে হবে।

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

ডিফল্ট:

মিথ্যা

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

<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' এবং 'h3'-এর দ্বিতীয় মানটি মুছে দেয়। যদি 'h3'-এর কেবল একটিই মান থাকে, তবে সেটি মুছে ফেলা হয় না।

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

<ত্রুটি প্রতিক্রিয়া><সেট> উপাদান

ত্রুটির বার্তায় তথ্য নির্ধারণ করে।

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

ডিফল্ট:

প্রযোজ্য নয়

উপস্থিতি:

ঐচ্ছিক

প্রকার:

প্রযোজ্য নয়

<FaultResponse>/<Set>/<Headers> এলিমেন্ট

এরর মেসেজে HTTP হেডার সেট বা ওভাররাইট করে। উল্লেখ্য যে, খালি হেডার <Set><Headers/></Set> কোনো হেডার সেট করে না। এই উদাহরণে, <AssignTo> এলিমেন্টের মাধ্যমে নির্দিষ্ট করা message ভেরিয়েবলটিতে user-agent হেডারটি সেট করা হয়েছে।

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

অথবা, ক্লাউড রিলিজ ১৬.০৮.১৭ থেকে, আপনি ভেরিয়েবল ঢোকানোর জন্য কার্লি ব্র্যাকেটও ব্যবহার করতে পারেন:

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

ডিফল্ট:

উপস্থিতি:

ঐচ্ছিক

প্রকার:

স্ট্রিং

বৈশিষ্ট্য

 
<Payload contentType="content_type" variablePrefix="char" variableSuffix="char">
বৈশিষ্ট্য বর্ণনা উপস্থিতি প্রকার
বিষয়বস্তুর ধরণ

যদি contentType নির্দিষ্ট করা থাকে, তবে এর মান Content-Type হেডারে নির্ধারিত হয়।

ঐচ্ছিক স্ট্রিং
পরিবর্তনশীল উপসর্গ ঐচ্ছিকভাবে একটি ফ্লো ভেরিয়েবলের শুরুতে বিভাজক নির্দিষ্ট করা হয়, কারণ JSON পেলোড ডিফল্ট "{" অক্ষরটি ব্যবহার করতে পারে না। ঐচ্ছিক চার
পরিবর্তনশীল প্রত্যয় ঐচ্ছিকভাবে একটি ফ্লো ভেরিয়েবলের শেষে বিভাজক নির্দিষ্ট করা হয়, কারণ JSON পেলোড ডিফল্ট "}" অক্ষরটি ব্যবহার করতে পারে না। ঐচ্ছিক চার

<FaultResponse>/<Set>/<StatusCode> উপাদান

প্রতিক্রিয়ার স্ট্যাটাস কোড নির্ধারণ করে।

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

ডিফল্ট:

মিথ্যা

উপস্থিতি:

ঐচ্ছিক

প্রকার:

বুলিয়ান

<FaultResponse>/<Set>/<ReasonPhrase> উপাদান

প্রতিক্রিয়ার কারণ বাক্যটি নির্ধারণ করে।

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

ডিফল্ট:

মিথ্যা

উপস্থিতি:

ঐচ্ছিক

প্রকার:

বুলিয়ান

<শর্টফল্টরিজন> উপাদান

প্রতিক্রিয়ায় ত্রুটির একটি সংক্ষিপ্ত কারণ প্রদর্শন করার জন্য নির্দিষ্ট করে:

<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 পলিসি কার্যকর হওয়ার পর নিম্নলিখিত পূর্বনির্ধারিত ফ্লো ভ্যারিয়েবলগুলো উপলব্ধ হয়। ফ্লো ভ্যারিয়েবল সম্পর্কে আরও তথ্যের জন্য, ভ্যারিয়েবল রেফারেন্স দেখুন।

পরিবর্তনশীল প্রকার অনুমতি বর্ণনা
ত্রুটি.নাম স্ট্রিং শুধুমাত্র পঠনযোগ্য যখন RaiseFault পলিসিটি কার্যকর হয়, তখন এই ভেরিয়েবলটির মান সর্বদা RaiseFault স্ট্রিংটিতে সেট করা হয়।
ত্রুটির ধরণ স্ট্রিং শুধুমাত্র পঠনযোগ্য এরর-এ ফল্ট টাইপটি রিটার্ন করে এবং তা উপলব্ধ না থাকলে একটি খালি স্ট্রিং রিটার্ন করে।
ত্রুটি.বিভাগ স্ট্রিং শুধুমাত্র পঠনযোগ্য ত্রুটির মধ্যে থাকা ত্রুটির বিভাগটি ফেরত দেয় এবং তা উপলব্ধ না থাকলে একটি খালি স্ট্রিং ফেরত দেয়।

RaiseFault ব্যবহারের উদাহরণ

নিম্নলিখিত উদাহরণটি ইনবাউন্ড অনুরোধে zipcode নামের একটি queryparam এর উপস্থিতি বাধ্যতামূলক করতে একটি Condition ব্যবহার করে। যদি সেই 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>

ত্রুটির রেফারেন্স

এই বিভাগটি ফল্ট কোড এবং ত্রুটি বার্তাগুলি বর্ণনা করে যেগুলি ফেরত দেওয়া হয় এবং ত্রুটি ভেরিয়েবলগুলি যেগুলি এজ দ্বারা সেট করা হয় যখন এই নীতিটি একটি ত্রুটি ট্রিগার করে৷ এই তথ্যটি জানা গুরুত্বপূর্ণ যে আপনি ত্রুটিগুলি পরিচালনা করার জন্য ত্রুটির নিয়ম তৈরি করছেন কিনা। আরও জানতে, নীতিগত ত্রুটি এবং হ্যান্ডলিং ফল্ট সম্পর্কে আপনার যা জানা দরকার তা দেখুন৷

রানটাইম ত্রুটি

নীতি কার্যকর করার সময় এই ত্রুটিগুলি ঘটতে পারে৷

ফল্ট কোড 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 ) দ্বারা সংজ্ঞায়িত করা হয়। তথ্যের জন্য, পলিসি স্কিমাগুলো গিটহাবে পাওয়া যাবে।

সম্পর্কিত বিষয়

ত্রুটিগুলি পরিচালনা দেখুন