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

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

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

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

    ה-SharedFlow_Sample לא מופיע בעמודה Shared Flow.

    מכיוון שאין זרימת נתונים משותפת כזו, מוצג קוד השגיאה:

    flow.SharedFlowNotFound
    

רזולוציה

מוודאים שהזרימה המשותפת שצוינה ברכיב <SharedFlowBundle> במדיניות Flow Callout קיימת ושהיא נפרסה בסביבה הספציפית שבה מבוצעת בקשת ה-API.

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

  1. יוצרים פריט תוכן משותף בשם SharedFlow_Sample ומציבים אותו בסביבת הבדיקה כמו שמוצג בהמשך:

    התהליך המשותף SharedFlow_Sample מופיע בעמודה Shared Flow.

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

    לדוגמה, בצילום המסך שלמטה אפשר לראות שהזרימה המשותפת Shared-Flow_example קיימת אבל לא נפרסה.

    תהליך העבודה המשותף Shared-Flow_example קיים ואין לו פריסות.

    מכיוון שהזרימה המשותפת הזו לא נפרסה, מופיע קוד השגיאה:

    flow.SharedFlowNotFound
    

רזולוציה

מוודאים שהזרימה המשותפת שצוינה ברכיב <SharedFlowBundle> במדיניות Flow Callout קיימת ושהיא נפרסה בסביבה הספציפית שבה מבוצעת בקשת ה-API.

כדי לתקן את הדוגמה שלמעלה, צריך לפרוס את התהליך המשותף שנקרא Shared-Flow_example בסביבת הבדיקה. בצילום המסך הבא אפשר לראות שהזרימה המשותפת SharedFlow_Sample נפרסה:

תהליך העבודה המשותף SharedFlow_Sample נפרס בסביבת הבדיקה.

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