פתרון בעיות של שגיאות זמן ריצה במדיניות FlowCallout

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

SharedFlowNotFound

קוד שגיאה

flow.SharedFlowNotFound

גוף התגובה לשגיאה

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

סיבות אפשריות

הסיבות האפשריות לשגיאה הזו:

הסיבה תיאור
תהליך משותף לא זמין התהליך המשותף לא קיים.
תהליך משותף לא נפרס התהליך המשותף קיים אבל לא נפרס.

הסיבה: התהליך המשותף לא זמין

במדיניות Flow Callout, אם זרימת הנתונים המשותפת שמוגדרת ברכיב <SharedFlowBundle> לא קיימת בסביבה, השגיאה הזו מתרחשת.

לדוגמה, אם רכיב <SharedFlowBundle> במדיניות Flow Callout מכיל זרימה משותפת בשם 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 Proxy הספציפי שבו התרחשה הכשל. בודקים אם יש מדיניות Flow Callout שבה רכיב <SharedFlowBundle> מצוין עם שם התהליך שזוהה בשלב 1 למעלה.

    לדוגמה, במדיניות הבאה מצוין <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, בודקים אם התהליך המשותף הזה קיים בקטע APIs > Shared Flows (ממשקי API > תהליכים משותפים). אם הוא לא קיים, זה הגורם לשגיאה. (שימו לב: בממשק המשתמש החדש של Edge, אפשר למצוא את Shared Flows בכרטיסייה Develop).

    לדוגמה, בצילום המסך שמוצג למטה, אין זרימת נתונים משותפת SharedFlow_Sample.

    מכיוון שהתהליך המשותף הזה לא קיים, מופיע קוד השגיאה:

    flow.SharedFlowNotFound
    

רזולוציה

מוודאים שהזרימה המשותפת שצוינה ברכיב <SharedFlowBundle> במדיניות Flow Callout קיימת ושהיא נפרסה בסביבה הספציפית שבה מתבצעת בקשת ה-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> של מדיניות Flow Callout, תופיע השגיאה הזו.

לדוגמה, אם רכיב <SharedFlowBundle> במדיניות Flow Callout מכיל זרימת נתונים משותפת בשם 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> במדיניות Flow Callout קיימת ושהיא נפרסה בסביבה הספציפית שבה מבוצעת בקשת ה-API.

כדי לתקן את הדוגמה שלמעלה, צריך לפרוס את הרכיב המשותף שנקרא SharedFlow_example בסביבת הבדיקה, כמו שמוצג בהמשך:

אם תבצעו קריאה ל-API בסביבת הבדיקה, השגיאה לא תופיע יותר כי רכיב ה-Flow Callout נפרס גם בסביבת הבדיקה.