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

הדף הזה רלוונטי ל-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 endpoints > default (נקודות קצה של שרת Proxy > ברירת מחדל).

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

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

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

    לחצן להוספת רצף פעולות מותנה

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

    לחצן להוספת רצף פעולות מותנה

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

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

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

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

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

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

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

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

השלבים הבאים

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