תהליכי עבודה מותנים

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

בזרימה מותנית, כללי המדיניות מופעלים רק אם התנאי של הזרימה מקבל את הערך true (בניגוד לכללי מדיניות שמצורפים ל-PreFlow או ל-PostFlow, שמופעלים תמיד). בקטע הזה מוסבר איך ליצור תהליך מותנה.

מידע על תהליכים מותנים

במהלך העיבוד של בקשה ותגובה, רק תהליך מותנה אחד מופעל לכל פלח – התהליך הראשון שהתנאי שלו מוערך כ-true.

אפשר ליצור תנאים שכוללים את האופרטורים ||(OR) ו-&&(AND). עם זאת, כברירת מחדל, לאופרטור || יש עדיפות גבוהה יותר מאשר לאופרטור &&. לדוגמה, תנאי שנכתב כ- A && B || C && D מוערך כ-A && (B || C) && D. אם רוצים לשנות את סדר הפעולות כשמשתמשים באופרטורים האלה, צריך להוסיף סוגריים לביטוי.

בדוגמאות הבאות אפשר לראות כמה דרכים לשימוש בזרימות מותנות.

דוגמה 1

ההגדרה הבאה של ProxyEndpoint מציגה זרימה מותנית שמופעלת על ידי ProxyEndpoint בכל בקשת HTTP GET ל-proxy ל-API:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>
  <Flows>
    <Flow name="Flow-1">
      <Condition>request.verb="GET"</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>

שימו לב שהתנאי מפנה למשתנה request.verb flow. משתנה של זרימה הוא הפניה בעלת שם שמכילה מידע על מצב שמשויך לעסקת API שעובדה על ידי Apigee. ‫Apigee מגדיר הרבה משתני מצב שאפשר להפנות אליהם.

דוגמה 2

אם שרת הקצה העורפי של השירות מספק דוחות ותחזיות מזג אוויר, יכול להיות ש-API יגדיר שני תהליכים מותנים שממופים למשאבי ה-API האלה: /reports ו-/forecasts. כשקריאה ל-API כוללת אחד מהמשאבים האלה בכתובת ה-URL, התנאי מקבל את הערך true והלוגיקה שמצורפת לזרימה המותנית מופעלת.

מפתחי האפליקציות ניגשים למשאבים שלכם על ידי שליחת בקשות לכתובת URL בפורמט הבא:

http://myAPIs.myCo.com/weather/reports

או:

http://myAPIs.myCo.com/weather/forecasts

ב-proxy ל-API, אפשר להגדיר זרימה מותנית שתואמת למשאב ספציפי:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>
  <Flows>
    <Flow name="Flow-1">
      <Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition>
      <Request/>
      <Response/>
    </Flow>
    <Flow name="Flow-2">
      <Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>

בדוגמה הזו, יש הפניה למשתנה הזרימה proxy.pathsuffix, שמכיל את החלק של הסיומת של כתובת ה-URL שמשמשת לגישה ל-proxy ל-API. אחר כך תוכלו לצרף מדיניות שונה לזרימה המותנית של כל משאב.

דוגמה: יצירת תהליך מותנה

הדוגמה הבאה:

  • יוצר זרימה מותנית שמופעלת רק כשבקשת ההודעה היא HTTP GET.
  • הוספת מדיניות לזרימה החדשה.

הוספת זרימה מותנית

כדי להוסיף זרימה מותנית:

  1. בוחרים בכרטיסייה Develop (פיתוח) בכלי לעריכת ה-Proxy.
  2. בחלונית הימנית, בוחרים באפשרות נקודות קצה של שרת Proxy > ברירת מחדל.

    בחלונית הימנית, בוחרים באפשרות Proxy endpoints (נקודות קצה של שרת Proxy) > default (ברירת מחדל).

    הערה: יכול להיות שתצטרכו להרחיב את העורך החזותי בחלונית הימנית כדי לראות את כל הרכיבים. כדי לעשות זאת, לוחצים על הקו שמפריד בין כלי העריכה החזותי לבין כלי לעריכת טקסט וגוררים אותו קצת למטה.

  3. לוחצים על הלחצן + מעל החלונית תגובה.

    לחצן להוספת זרימה מותנית

  4. בתיבת הדו-שיח הוספת זרימה מותנית, בוחרים באפשרות נתיב ופועל. בשדה נתיב, מזינים את הסיומת של הנתיב שרוצים שיופיע בנתיב הבקשה כדי שהזרימה המותנית תתבצע. דוגמה 2 למעלה.

    לחצן להוספת זרימה מותנית

    רצף הפעולות המותנה יופעל רק אם הבקשה היא בקשת GET (אבל לא בקשה של PUT, POST וכו').

    התהליך החדש, שנקרא Flow-1, מופיע עכשיו בחלונית Proxy Endpoint.

    זרימה מותנית שמוצגת בנקודות קצה של Proxy.

  5. קוד ה-XML של הזרימה החדשה עם התנאים מוצג בכלי לעריכת טקסט.

    זרימה מותנית שמוצגת בנקודות קצה של Proxy.

אם רוצים, אפשר לערוך את הרכיב Condition. אפשר לעיין במאמר בנושא הוספת לוגיקה לזרימות.

צירוף מדיניות לתהליך

אחרי שיוצרים את התהליך המותנה, אפשר לצרף אליו מדיניות. בדוגמה הבאה מוסיפים למסלול מדיניות מכסה, שמגבילה את מספר הודעות הבקשה ש-proxy ל-API מאפשר במהלך תקופה מסוימת:

  1. בחלונית הימנית, לוחצים על הלחצן + משמאל למדיניות.
  2. בתיבת הדו-שיח Create policy (יצירת מדיניות), לוחצים על השדה Select policy type (בחירת סוג המדיניות), גוללים למטה אל Traffic Management (ניהול תנועה) ובוחרים באפשרות Quota (מכסה).
  3. לוחצים על יצירה כדי ליצור את המדיניות.
  4. בחלונית Request, לוחצים על הלחצן + לצד Flow-1.

    לוחצים על לחצן הפלוס לצד Flow-1 בחלונית Request (בקשה).

  5. בתיבת הדו-שיח הוספת שלב למדיניות, לוחצים על השדה בחירת מדיניות קיימת ובוחרים באפשרות Quota-1.
  6. לוחצים על הוספה.

בחלונית Request מוצגים עכשיו התהליך והמדיניות המצורפת, Quota-1.

חלונית הבקשה שבה מוצג התהליך החדש ומדיניות המכסות.

בכלי לעריכת טקסט מוצג עכשיו שלב שמכיל את המדיניות Quota-1 ברכיב Flow-1 של ה-XML:

הצגת מדיניות מכסת המכסות וזרימה מותנית ב-XML

בהגדרה הזו, מדיניות מכסה תיאכף על בקשות של GET. בקשות מסוגים אחרים לא ייכללו במכסה המקסימלית של בקשות שמוגדרת במדיניות בנושא מכסות.

השלבים הבאים

בנושאים הבאים מפורט מידע נוסף על בניית תנאים ועל שימוש במשתנים: