FlowCallout নীতি রানটাইম সংক্রান্ত সমস্যার সমাধান করা

আপনি Apigee Edge ডকুমেন্টেশন দেখছেন।
Apigee X ডকুমেন্টেশন দেখুন।
তথ্য

SharedFlowNotFound

সমস্যার কোড

flow.SharedFlowNotFound

সমস্যার উত্তরের বডি

{
    "fault": {
        "faultstring": "Shared Flow shared_flow_name Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

সম্ভাব্য কারণ

এই সমস্যার সম্ভাব্য কারণগুলি হল:

কারণ বিবরণ
শেয়ার করা ফ্লো উপলভ্য নেই শেয়ার করা ফ্লোটি নেই।
শেয়ার্ড ফ্লো ডেপ্লয় করা হয়নি শেয়ার করা ফ্লো আছে কিন্তু সেটি ডেপ্লয় করা হয়নি।

কারণ: শেয়ার করা ফ্লো উপলভ্য নেই

ফ্লো কলআউট নীতিতে, <SharedFlowBundle> এলিমেন্টের মধ্যে শেয়ার করা ফ্লো যদি এনভায়রনমেন্টে না থাকে, তাহলে এই সমস্যা হয়।

যেমন, Flow কলআউট নীতিতে <SharedFlowBundle> এলিমেন্টে SharedFlow_Sample নামের শেয়ার করা ফ্লো থাকলে এবং এই শেয়ার করা ফ্লো এনভায়রনমেন্টে না থাকলে, সমস্যা হয়।

সমস্যার মেসেজের উদাহরণ

{
    "fault": {
        "faultstring": "Shared Flow SharedFlow_Sample Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

ডায়াগনসিস

  1. যে শেয়ার্ড ফ্লো আর নেই সেটি শনাক্ত করুন। আপনি এটি সমস্যার উত্তরের faultstring এলিমেন্টে খুঁজে পাবেন। যেমন, নিম্নলিখিত faultstring-এ, শেয়ার করা ফ্লোয়ের নাম হল SharedFlow_Sample:

    "faultstring": "Shared Flow SharedFlow_Sample Not Found"

  2. যেখানে সমস্যা হয়েছে সেই নির্দিষ্ট API প্রক্সিতে সব ফ্লো কলআউট নীতি পরীক্ষা করুন। <SharedFlowBundle> এলিমেন্ট উপরে #১ ধাপে শনাক্ত করা ফ্লোয়ের নামের সাথে নির্দিষ্ট করা আছে এমন কোনও ফ্লো কলআউট নীতি আছে কিনা তা চেক করুন।

    যেমন, নিম্নলিখিত নীতিতে <SharedFlowBundle>-কে SharedFlow_Sample হিসেবে নির্দিষ্ট করা হয়েছে, যা ফল্ট স্ট্রিংয়ে থাকা তথ্যের সাথে ম্যাচ করে।

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
       <DisplayName>Auth Flow Callout</DisplayName>
       <SharedFlowBundle>SharedFlow_Sample</SharedFlowBundle>
    </FlowCallout>
    
  3. Edge UI-তে, API > শেয়ার করা ফ্লো-এর মধ্যে এই শেয়ার করা ফ্লো আছে কিনা তা চেক করুন। সেটি না থাকলে, এটিই সমস্যার কারণ। (মনে রাখবেন, নতুন Edge UI-তে, আপনি 'ডেভেলপ' ট্যাবের অধীনে শেয়ার করা ফ্লো খুঁজে পেতে পারেন।)

    যেমন, নিচে দেখানো স্ক্রিনশটে, শেয়ার করা ফ্লো SharedFlow_Sample নেই।

    শেয়ার করা এই ফ্লোটি না থাকার কারণে, আপনি এই সমস্যার কোডটি পাবেন:

    flow.SharedFlowNotFound
    

রেজোলিউশন

Flow কলআউট নীতির <SharedFlowBundle> এলিমেন্টে উল্লেখ করা শেয়ার করা ফ্লো আছে কিনা এবং API অনুরোধ যে নির্দিষ্ট এনভায়রনমেন্টে এক্সিকিউট করা হয়েছে সেখানে সেটি ডেপ্লয় করা হয়েছে কিনা তা নিশ্চিত করুন।

সমস্যা সমাধানের জন্য আপনি নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি বেছে নিতে পারেন:

  1. নিচে দেখানো SharedFlow_Sample নামের একটি শেয়ার্ড ফ্লো তৈরি করুন এবং নিচে দেখানো টেস্ট এনভায়রনমেন্টে এটি ডেপ্লয় করুন:

  2. ফ্লো কলআউট নীতিতে আগে থেকেই থাকা এমন একটি শেয়ারড ফ্লো ব্যবহার করুন যা পরীক্ষামূলক এনভায়রনমেন্টে ডেপ্লয় করা হয়েছে। যেমন, আপনি ফ্লো কলআউট নীতিতে SharedFlow_demo নির্দিষ্ট করতে পারেন।

    <FlowCallout async="false" continueOnError="false" enabled="true" name="Auth-Flow-Callout">
      <DisplayName>Auth Flow Callout</DisplayName>
      <SharedFlowBundle>SharedFlow_demo</SharedFlowBundle>
    </FlowCallout>
    

    আপনি টেস্ট এনভায়রনমেন্টে API কল করলে, আপনি আর এরর দেখতে পাবেন না, কারণ ফ্লো কলআউটও টেস্ট এনভায়রনমেন্টে ডিপ্লয় করা হয়েছে।

কারণ: শেয়ার্ড ফ্লো ডেপ্লয় করা হয়নি

ফ্লো কলআউট নীতির <SharedFlowBundle> এলিমেন্টে উল্লেখ করা শেয়ার্ড ফ্লো ডিপ্লয় করা না থাকলে, এই সমস্যাটি হয়।

যেমন, Flow কলআউট নীতিতে <SharedFlowBundle> এলিমেন্টে SharedFlow_example নামের একটি শেয়ার করা ফ্লো থাকলে এবং API অনুরোধ করা নির্দিষ্ট এনভায়রনমেন্টে সেটি ডেপ্লয় করা না থাকলে, সমস্যাটি হয়।

সমস্যার মেসেজের উদাহরণ

{
    "fault": {
        "faultstring": "Shared Flow Shared-Flow_example Not Found",
        "detail": {
            "errorcode": "flow.SharedFlowNotFound"
        }
    }
}

ডায়াগনসিস

  1. যে শেয়ার্ড ফ্লো ডেপ্লয় করা হয়নি সেটি শনাক্ত করুন। আপনি এটি সমস্যার উত্তরের faultstring এলিমেন্টে খুঁজে পাবেন। যেমন, নিম্নলিখিত faultstring-এ, শেয়ার করা ফ্লোয়ের নাম হল Shared-Flow_example:

    "faultstring": "Shared Flow Shared-Flow_example Not Found"

  2. Edge UI-তে, এই শেয়ার করা ফ্লো ডিপ্লয় করা হয়েছে কিনা তা চেক করুন।

    যেমন, আপনি নিচের স্ক্রিনশটে দেখতে পাবেন যে শেয়ার করা ফ্লো SharedFlow_example রয়েছে কিন্তুসেটি ডেপ্লয় করা হয়নি।

    এই শেয়ার করা ফ্লো এখনও ডেপ্লয় করা হয়নি বলে আপনি এই ত্রুটি কোড পাবেন:

    flow.SharedFlowNotFound
    

রেজোলিউশন

Flow কলআউট নীতির <SharedFlowBundle> এলিমেন্টে উল্লেখ করা শেয়ার করা ফ্লো আছে কিনা এবং API অনুরোধ যে নির্দিষ্ট এনভায়রনমেন্টে এক্সিকিউট করা হয়েছে সেখানে সেটি ডেপ্লয় করা হয়েছে কিনা তা নিশ্চিত করুন।

উপরের উদাহরণটি ঠিক করতে, নিচে দেখানো SharedFlow_example নামের শেয়ার করা ফ্লোটি টেস্ট এনভায়রনমেন্টে ডেপ্লয় করুন:

আপনি টেস্ট এনভায়রনমেন্টে API কল করলে, আপনি আর এরর দেখতে পাবেন না, কারণ ফ্লো কলআউটও টেস্ট এনভায়রনমেন্টে ডিপ্লয় করা হয়েছে।