عیب یابی خطای زمان اجرا خط مشی FlowCallout، عیب یابی خطای زمان اجرا خط مشی FlowCallout

شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید .
اطلاعات

SharedFlowNotFound

کد خطا

flow.SharedFlowNotFound

متن پاسخ خطا

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

علل احتمالی

علل احتمالی این خطا عبارتند از:

علت توضیحات
جریان مشترک در دسترس نیست جریان مشترک وجود ندارد.
جریان مشترک مستقر نشده است جریان مشترک وجود دارد اما مستقر نشده است.

علت: جریان مشترک در دسترس نیست

در خط‌مشی فراخوانی جریان، اگر جریان مشترک تعریف‌شده در عنصر <SharedFlowBundle> در محیط وجود نداشته باشد، این خطا رخ می‌دهد.

برای مثال، اگر عنصر <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. تمام سیاست‌های فراخوانی جریان (Flow Callout) را در پروکسی 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، بررسی کنید که آیا این جریان مشترک در قسمت APIها > Shared Flows وجود دارد یا خیر. اگر وجود نداشت، پس علت خطا همین است. (توجه داشته باشید که در رابط کاربری New Edge، می‌توانید Shared Flows را در تب Develop پیدا کنید.)

    برای مثال، در تصویر زیر، جریان مشترک SharedFlow_Sample وجود ندارد.

    از آنجا که این جریان مشترک وجود ندارد، کد خطا را دریافت می‌کنید:

    flow.SharedFlowNotFound
    

وضوح تصویر

اطمینان حاصل کنید که جریان مشترک مشخص شده در عنصر <SharedFlowBundle> در سیاست فراخوانی جریان، در محیط خاصی که درخواست API در آن اجرا می‌شود، وجود داشته و مستقر شده است.

برای حل مشکل می‌توانید یکی از روش‌های زیر را انتخاب کنید:

  1. یک جریان مشترک به نام SharedFlow_Sample مطابق شکل زیر ایجاد کنید و آن را مطابق شکل زیر در محیط آزمایشی مستقر کنید:

  2. از یک Shared Flow موجود که در محیط تست در سیاست Flow Callout مستقر شده است، استفاده کنید. برای مثال، می‌توانید SharedFlow_demo را در سیاست Flow Callout مشخص کنید.

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

    اگر یک فراخوانی API به محیط تست انجام دهید، دیگر خطایی نخواهید دید، زیرا فراخوانی جریان (Flow Callout) نیز به محیط تست اعمال می‌شود.

علت: جریان مشترک مستقر نشده است

اگر جریان مشترک مشخص شده در عنصر <SharedFlowBundle> از خط‌مشی فراخوانی جریان، مستقر نشده باشد، این خطا رخ می‌دهد.

برای مثال، اگر عنصر <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، بررسی کنید که آیا این جریان مشترک مستقر شده است یا خیر.

    برای مثال، در تصویر زیر متوجه خواهید شد که جریان مشترک SharedFlow_example وجود دارد اما مستقر نشده است.

    از آنجایی که این جریان مشترک مستقر نشده است، کد خطای زیر را دریافت می‌کنید:

    flow.SharedFlowNotFound
    

وضوح تصویر

اطمینان حاصل کنید که جریان مشترک مشخص شده در عنصر <SharedFlowBundle> در سیاست فراخوانی جریان، در محیط خاصی که درخواست API در آن اجرا می‌شود، وجود داشته و مستقر شده است.

برای اصلاح مثال بالا، جریان مشترک با نام SharedFlow_example را در محیط آزمایشی مطابق شکل زیر مستقر کنید:

اگر یک فراخوانی API به محیط تست انجام دهید، دیگر خطایی نخواهید دید، زیرا فراخوانی جریان (Flow Callout) نیز به محیط تست اعمال می‌شود.