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

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

    לדוגמה, בצילום המסך שבהמשך, התהליך המשותף SharedFlow_Sample לא קיים.

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

    flow.SharedFlowNotFound
    

רזולוציה

מוודאים שהתהליך המשותף שצוין ברכיב <SharedFlowBundle> במדיניות של קריאה לפעולה של תהליך קיים ופורס בסביבה הספציפית שבה מתבצעת בקשת ה-API.

אפשר לבחור באחת מהדרכים הבאות כדי לטפל בבעיה:

  1. יוצרים תהליך שיתופי בשם SharedFlow_Sample כפי שמתואר בהמשך, ופורסים אותו בסביבת הבדיקה כפי שמתואר בהמשך:

  2. להשתמש בתהליך משותף שכבר קיים שנפרס בסביבת הבדיקה במדיניות בנושא יתרונות מרכזיים של זרימה. לדוגמה, אפשר לציין SharedFlow_demo במדיניות של קריאה לפעולה ב-Flow.

    <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 לא נפרס.

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