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

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

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

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

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

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

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

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

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

השלבים הבאים

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