הפניית תצורה של שרת proxy ל-API

מוצג המסמך של Apigee Edge.
עוברים אל מסמכי תיעוד של Apigee X.
מידע

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

אם אתם רוצים ללמוד איך לפתח שרתי proxy ל-API, מומלץ להתחיל מהנושא פיתוח API פשוט שרת proxy.

הדרכים הנפוצות ביותר לעריכת הגדרות של שרת proxy הן:

פיתוח מקומי של הגדרות לשרת proxy

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

בקטע הזה נסביר איך להשתמש בממשק המשתמש כדי להוריד איחוד קיים של שרת proxy, איך לערוך אותו ואז להעלות אותו חזרה ל-Edge לצורך פריסה. אפשר גם להשתמש apigeetool כדי להוריד ולפרוס תצורה חדשה של שרת proxy (באמצעות fetchproxy ו- פקודות deployproxy, בהתאמה.)

כדי לערוך הגדרה של שרת proxy באופן מקומי באמצעות ממשק המשתמש:

  1. מורידים את ההגדרה הנוכחית של שרת ה-proxy בממשק המשתמש של Edge. (בשרתי ה-proxy ל-API בתצוגה, בוחרים באפשרות Project > להורדת הגרסה)
  2. במחשב המקומי, יוצרים ספרייה חדשה ומרחיבים את קובץ ה-ZIP שהורדתם לתוך את זה.

    כדי להרחיב את קובץ ה-ZIP, אפשר להשתמש בכלי עזר כמו unzip, כמו בדוגמה הבאה לדוגמה:

    mkdir myappdir
    unzip ./my-app_app_rev3_2019_04_20.zip -d myappdir

    התוכן המורחב של קובץ ה-ZIP צריך להיות דומה למבנה שמתואר ב מבנה של שרת proxy ל-API.

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

    לדוגמה, כדי להפעיל מעקב אחר בריאות ב- ב-Proxy ל-API, עורכים את קובץ התצורה TargetEndpoint ספריית /apiproxy/targets/. קובץ ברירת המחדל בספרייה הזו הוא default.xml, למרות שיכול להיות שיש קבצים עם שמות שונים אם משתמשים בהם יעדים מותנים.

    במקרה כזה, אם קובץ התצורה של TargetEndpoint והספרייה שלו לא קיימים, ליצור אותן.

  4. אחרי שמסיימים לערוך את קובצי התצורה של שרת ה-proxy, חשוב לשמור את השינויים.
  5. עוברים לספרייה החדשה שיצרתם כשהרחבתם את קובצי ה-ZIP (השורש של בקובצי התצורה המורחבים).

    לדוגמה, אם הרחבתם את הקבצים לספרייה /myappdir, משנים את באותה ספרייה, כמו בדוגמה הבאה:

    cd myappdir

    עליך לעבור לספרייה הזו לפני שתעביר מחדש לארכיון את קובצי התצורה של שרת ה-proxy כי אתם לא רוצים שהספרייה /myappdir תיכלל בקובץ ה-ZIP. הספרייה ברמה העליונה בקובץ ה-ZIP חייבת להיות /apiproxy.

  6. מעבירים מחדש לארכיון את קובצי התצורה של שרת ה-proxy, כולל הקבצים החדשים או שהשתנו. אפשר להשתמש כמו zip, כמו בדוגמה הבאה:
    zip my-new-proxy.zip -r .

    הספרייה ברמה העליונה בקובץ ה-ZIP חייבת להיות /apiproxy.

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

    Edge מגדיל את מספר הגרסה הקודמת של ההגדרה החדשה של שרת ה-proxy בזמן ההעלאה את זה.

  7. העלאת ההגדרה החדשה של שרת ה-proxy באמצעות ממשק המשתמש של Edge. (בשרתי proxy ל-API בתצוגה, בוחרים באפשרות Project > מעלים גרסה חדשה).

    אם מופיעה שגיאה כמו Bundle is invalid. Empty bundle., צריך לוודא הספרייה ברמה העליונה של קובץ ה-ZIP היא /apiproxy. אם לא, יש להעביר לארכיון מחדש את קובצי תצורה של שרת proxy מהרמה הבסיסית (root) של הספרייה המורחבת.

    אחרי העלאת ההגדרה החדשה של שרת ה-proxy, דפדפן Edge מגדיל את מספר הגרסה יוצג בתצוגה סיכום גרסאות.

    מערכת Edge לא פורסת את הגרסה החדשה אחרי ההעלאה באמצעות ממשק המשתמש.

  8. פורסים את הגרסה החדשה.

מידע נוסף זמין במאמר הבא: מדריך: איך להוריד שרת proxy באמצעות ממשק המשתמש וה-API לניהול ב- קהילת Apigee.

מבנה של שרת proxy ל-API

שרת proxy ל-API מורכב מהתצורה הבאה:

הגדרה בסיסית הגדרות אישיות ראשיות עבור שרת proxy ל-API. לעיון בקטע בסיס ההגדרה האישית.
הגדרת נקודת קצה לשרת proxy הגדרות לחיבור ה-HTTP הנכנס (מבקשת אפליקציות ל-Apigee Edge), בקשה תהליכי תשובה, וקבצים מצורפים למדיניות. ראו ProxyEndpoint.
הגדרה של נקודת קצה (endpoint) של יעד הגדרות לחיבור ה-HTTP היוצא (מ-Apigee Edge לשירות לקצה העורפי), של בקשות ותשובות וקבצים מצורפים למדיניות. למידע נוסף, ראו TargetEndpoint.
זרימה צינורות עיבוד הנתונים של הבקשות והתגובה של ProxyEndpoint ו-TargetEndpoint שאליהם אפשר להחיל את המדיניות מצורף. ראו זרימה.
מדיניות קובצי תצורה בפורמט XML שתואמים לסכימות של מדיניות Apigee Edge. צפייה מדיניות.
מקורות מידע סקריפטים, קובצי JAR וקובצי Sitelink שיש אליהם הפניה מכללי המדיניות להפעלת לוגיקה מותאמת אישית. צפייה משאבים.

מבנה ספריות של שרת proxy ל-API ותוכן

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

מציג את מבנה הספריות שבו apiproxy הוא הרמה הבסיסית (root). ישירות מתחת
    ספריית apiproxy היא המדיניות, שרתי ה-proxy, המשאבים וספריות היעדים, וגם
    weatherapi.xml.

קובצי תצורה וספרייה המבנה של שרת proxy ל-API

קטע זה מסביר את קובצי התצורה ואת מבנה הספריות של שרת proxy ל-API.

הגדרה בסיסית

/apiproxy/weatherapi.xml

הגדרת הבסיס של שרת proxy ל-API, שמגדיר את השם של שרת ה-proxy ל-API. השם חייבת להיות ייחודית בארגון.

הגדרות אישיות לדוגמה:

<APIProxy name="weatherapi">
</APIProxy>

הרכיבים של הגדרת הבסיס

שם תיאור ברירת מחדל חובה?
APIProxy
name השם של שרת ה-proxy ל-API, חייב להיות ייחודי בארגון. התווים מותר להשתמש בשם: A-Za-z0-9_- לא רלוונטי כן
revision מספר הגרסה של תצורת ה-Proxy ל-API. אין צורך להגדיר במפורש מספר הגרסה, מכיוון ש-Apigee Edge עוקב באופן אוטומטי אחרי הגרסה הנוכחית של ה-API שרת proxy. לא רלוונטי לא
ConfigurationVersion הגרסה של סכימת התצורה של שרת proxy ל-API שאליה תואם שרת ה-proxy הזה של ה-API. רק הערך הנתמך בשלב זה הואprimaryVersion 4 ו-minVersion 0. ההגדרה הזו יכולה להיות שישמשו בעתיד כדי לאפשר את האבולוציה של הפורמט של שרת ה-proxy ל-API. 4.0 לא
Description תיאור טקסטואלי של שרת ה-proxy ל-API. אם התיאור יישלח, הוא יוצג ממשק המשתמש של ניהול Edge. לא רלוונטי לא
DisplayName שם ידידותי למשתמש, שעשוי להיות שונה מהמאפיין name של הגדרה של שרת proxy ל-API. לא רלוונטי לא
Policies רשימה של כללי מדיניות בספרייה /policies של שרת ה-proxy הזה ל-API. אתם בדרך כלל רואים את הרכיב הזה רק כששרת ה-proxy ל-API נוצר באמצעות ממשק המשתמש של ניהול Edge. זה פשוט 'מניפסט' בהגדרה הזו, כדי לאפשר לך לראות את התוכן את ה-Proxy ל-API. לא רלוונטי לא
ProxyEndpoints רשימה של ProxyEndpoints בספרייה /proxies של ה-Proxy ל-API. שלך בדרך כלל יראו את הרכיב הזה רק כששרת ה-proxy ל-API נוצר באמצעות Edge ממשק המשתמש לניהול. זה פשוט 'מניפסט' שנועדה לספק שקיפות של ה-API. לא רלוונטי לא
Resources רשימת משאבים (JavaScript, Python, Java, XSX) ב/resources של ה-Proxy ל-API. בדרך כלל הרכיב הזה יוצג רק כששרת ה-proxy ל-API נוצר באמצעות ממשק המשתמש של ניהול Edge. זה פשוט 'מניפסט' בהגדרה הזו, מספקים שקיפות לגבי התוכן של שרת ה-proxy ל-API. לא רלוונטי לא
Spec מזהה את מפרט OpenAPI שמשויך לשרת ה-proxy ל-API. הערך מוגדר לכתובת URL או לנתיב בחנות המפרטים.

הערה: חנות המפרטים זמינה בממשק החדש של Edge בלבד. מידע נוסף על חנות מפרט הדף זמין במאמר ניהול ושיתוף מפרטים.
לא רלוונטי לא
TargetServers רשימה של שרתי TargetEnd שיש אליהם הפניה בכל אחת מנקודות היעד של שרת ה-proxy ל-API. אתם בדרך כלל רואים את הרכיב הזה רק כששרת ה-proxy ל-API נוצר באמצעות ממשק המשתמש של ניהול Edge. זה פשוט 'מניפסט' בהגדרה הזו, כדי לאפשר לך לראות את התוכן את ה-Proxy ל-API. לא רלוונטי לא
TargetEndpoints רשימה של TargetEndpoints בספרייה /targets של ה-Proxy ל-API. שלך בדרך כלל יראו את הרכיב הזה רק כששרת ה-proxy ל-API נוצר באמצעות Edge ממשק המשתמש לניהול. זה פשוט 'מניפסט' שנועדה לספק שקיפות של ה-API. לא רלוונטי לא

ProxyEndpoint

התמונה הבאה מציגה את זרימת הבקשה/תגובה:

הצגה של לקוח שקורא ל-HTTP
  לאחר השיפור. הבקשה עוברת דרך נקודת הקצה של שרת ה-proxy ולאחר מכן את נקודת הקצה של היעד לפני שהיא
  מעובד על ידי שירות ה-HTTP. התגובה עוברת דרך סיום היעד ואז
  נקודת קצה (endpoint) של שרת proxy לפני החזרה ללקוח.

/apiproxy/proxies/default.xml

הגדרת ProxyEndpoint מגדירה את הממשק הנכנס (ללקוח) ל-API שרת proxy. כשמגדירים ProxyEndpoint, מגדירים תצורת רשת מגדיר את האופן שבו אפליקציות לקוח ('אפליקציות') צריכות להפעיל את ממשק ה-API דרך שרת proxy.

הדוגמה הבאה של הגדרות ProxyEndpoint תאוחסן במסגרת /apiproxy/proxies:

<ProxyEndpoint name="default">
  <PreFlow/>
  <Flows/>
  <PostFlow/>
  <HTTPProxyConnection>
    <BasePath>/weather</BasePath>
    <VirtualHost>default</VirtualHost>
  </HTTPProxyConnection>
  <FaultRules/>
  <DefaultFaultRule/>
  <RouteRule name="default">
    <TargetEndpoint>default</TargetEndpoint>
  </RouteRule>
</ProxyEndpoint>

רכיבי התצורה הנדרשים בנקודת ProxyEndpoint בסיסית הם:

הגדרת נקודת קצה לשרת proxy Elements

שם תיאור ברירת מחדל חובה?
ProxyEndpoint
name השם של נקודת ה-ProxyEndpoint. חייב להיות ייחודי בתצורת ה-Proxy ל-API, כאשר (במקרים נדירים) מוגדרות מספר ProxyEndpoints. התווים שמותר לך להשתמש בהם בשם מוגבלים לגורמים הבאים: A-Za-z0-9._\-$ %. לא רלוונטי כן
PreFlow הגדרת כללי המדיניות בתהליך ה-PreFlow של בקשה או תשובה. לא רלוונטי כן
Flows
הגדרת כללי המדיניות בתהליכים המותנים של בקשה או תשובה.
לא רלוונטי כן
PostFlow
הגדרת כללי המדיניות בתהליך ה-PostFlow של בקשה או תשובה.
לא רלוונטי כן
HTTPProxyConnection הגדרה של כתובת הרשת ונתיב ה-URI המשויכים לשרת ה-proxy ל-API
BasePath

מחרוזת נדרשת שמזהה באופן ייחודי את נתיב ה-URI המשמש את Apigee Edge לניתוב הודעות נכנסות לשרת ה-proxy המתאים.

BasePath הוא שבר URI (לדוגמה /weather) המצורף אל כתובת ה-URL הבסיסית של שרת proxy ל-API (לדוגמה, http://apifactory-test.apigee.net). BasePath חייב להיות ייחודי בסביבה. הייחודיות מאומתת כששרת proxy ל-API נוצרת או מיובאות.

שימוש בתו כללי לחיפוש בנתיבים בסיסיים

אפשר להשתמש בסימן "*" אחד או יותר תווים כלליים לחיפוש בנתיבים בסיסיים של proxy ל-API. לדוגמה, בסיס הנתיב של /team/*/members מאפשר ללקוחות לקרוא https://[host]/team/blue/members והקבוצה https://[host]/team/green/members ללא צורך ליצור שרתי proxy חדשים ל-API לתמיכה בצוותים חדשים. לתשומת ליבכם: /**/ לא נתמך.

חשוב: ב-Apigee אין תמיכה בשימוש בתו כללי לחיפוש "*" בתור הראשון של נתיב בסיס. לדוגמה, אין תמיכה באפשרות הזו: /*/search. התחלת הנתיב הבסיסי ב-"*" עלול להוביל לשגיאות לא צפויות בגלל ש-Edge מזהה נתיבים חוקיים.

/ כן
VirtualHost

משייך שרת proxy של API לכתובות URL בסיסיות ספציפיות של סביבה. VirtualHost הוא תצורה בעלת שם שמגדירה כתובת URL אחת או יותר עבור סביבה.

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

כברירת מחדל, שני מארחים וירטואליים בעלי שם מוגדרים לסביבה: default וגם secure ארגון יכול גם להגדיר הגדרות מותאמות אישית דומיינים. כדי לוודא ששרת proxy ל-API יהיה זמין רק ב-HTTPS, לדוגמה, צריך להגדיר את VirtualHost ב-HTTPProxyConnection אל secure.

ברירת מחדל לא
Properties ניתן להגדיר קבוצה של הגדרות אופציונליות של תצורת HTTP כמאפיינים של <ProxyEndpoint> לא רלוונטי לא
FaultRules
מגדיר את האופן שבו נקודת ה-ProxyEndpoint מגיבה לשגיאה. כלל שגוי מציין פריטים:
  • תנאי שמציין את השגיאה שיש לטפל בה לפי הקטגוריה, קטגוריית המשנה או שם השגיאה
  • מדיניות אחת או יותר שמגדירה את ההתנהגות של כלל השגיאה עבור התנאי התואם

מידע נוסף זמין בקטע טיפול בתקלות.

לא רלוונטי לא
DefaultFaultRule

טיפול בשגיאות (מערכת, העברה, העברת הודעות או מדיניות) שאינן מפורשות מטופל על ידי כלל שגיאה אחר.

מידע נוסף זמין בקטע טיפול בתקלות.

לא רלוונטי לא
RouteRule מגדיר את היעד של הודעות בקשה נכנסות אחרי עיבוד על ידי צינור עיבוד נתונים של בקשת ProxyEndpoint. בדרך כלל, ה-RoleRule מפנה לנקודת TargetEndpoint אבל היא יכולה גם להפנות ישירות לכתובת URL.
Name מאפיין חובה, שמספק שם ל-RouteRule. התווים שיהיו מורשים להשתמש בשם מוגבלים לפריטים הבאים: A-Za-z0-9._\-$ %. עבור לדוגמה, Cat2 %_ הוא שם חוקי. לא רלוונטי כן
Condition הצהרה מותנית אופציונלית שמשמשת לניתוב דינמי בזמן ריצה. מותנה כללי נתיב שימושיים, לדוגמה, כדי לאפשר ניתוב מבוסס-תוכן לתמיכה בקצה העורפי ניהול גרסאות. לא רלוונטי לא
TargetEndpoint

מחרוזת אופציונלית שמזהה תצורה של נקודת קצה (TargetEndpoint) בעלת שם. A בעל שם TargetEndpoint הוא כל נקודת קצה (TargetEndpoint) שמוגדרת באותו שרת proxy ל-API הספרייה /targets).

מתן שם לנקודת הקצה (TargetEndpoint) מציין לאן להעביר את הודעות הבקשה אחרי העיבוד על ידי צינור עיבוד הנתונים של הבקשות ProxyEndpoint. לתשומת ליבכם: זוהי אפשרות הגדרה אישית.

נקודת ProxyEndpoint עשויה להפעיל כתובת URL ישירות. לדוגמה, משאב JavaScript או Java, פועל בתפקיד לקוח HTTP, עשוי לבצע את המשימה הבסיסית TargetEndpoint – העברת בקשות לשירות לקצה העורפי.

לא רלוונטי לא
כתובת URL מחרוזת אופציונלית שמגדירה כתובת של רשת יוצאת (שמכונה גם הפרמטר ProxyEndpoint, עקיפה של כל ההגדרות של TargetEndpoint שעשויות להיות מאוחסנות /targets לא רלוונטי לא

איך להגדיר RouteRules

נקודת קצה (TargetEndpoint) בעלת שם מפנה לקובץ תצורה ב-/apiproxy/targets כדי ה-RouteRule מעביר בקשה לאחר עיבוד על ידי ProxyEndpoint.

לדוגמה, ה-RouteRule הבא מתייחס להגדרה /apiproxy/targets/myTarget.xml:

<RouteRule name="default">
  <TargetEndpoint>myTarget</TargetEndpoint>
</RouteRule>

הפעלה של כתובת URL ישירה

נקודת ProxyEndpoint יכולה גם להפעיל שירות לקצה עורפי באופן ישיר. הפעלה של כתובת URL ישירה עוקפת כל שנקראת TargetEndpoints של /apiproxy/targets). לכן, TargetEndpoint היא הגדרה אופציונלית של שרת proxy ל-API, למרות שבפועל, הפעלה ישירה מ-ProxyEndpoint לא מומלץ.

לדוגמה, ה-RouteRule הבא שולח קריאת HTTP אל http://api.mycompany.com/v2

<RouteRule name="default">
  <URL>http://api.mycompany.com/v2</URL> 
</RouteRule>

נתיבים מותנים

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

כללי נתיב מותנים פועלים כמו הצהרות מותנות אחרות ב-Apigee Edge. פרטים נוספים זמינים בהפניה לתנאים ובהפניה למשתנים.

לדוגמה, השילוב הבא של RouteRule בודק קודם את הבקשה הנכנסת לצורך אימות הערך של כותרת HTTP. אם כותרת ה-HTTP routeTo כוללת את הערך TargetEndpoint1, לאחר מכן הבקשה מועברת לנקודת הקצה (TargetEndpoint) שנקראת TargetEndpoint1. אם לא, הבקשה הנכנסת תועבר אל http://api.mycompany.com/v2

<RouteRule name="MyRoute">
  <Condition>request.header.routeTo = "TargetEndpoint1"</Condition>
  <TargetEndpoint>TargetEndpoint1</TargetEndpoint>
</RouteRule>
<RouteRule name="default">
  <URL>http://api.mycompany.com/v2</URL>
</RouteRule>

נתיבים ריקים

ניתן להגדיר ערך null RouteRule כדי לתמוך בתרחישים שבהם הודעת הבקשה לא צריך להעביר אותם לנקודת הקצה (TargetEndpoint). האפשרות הזו שימושית כאשר ProxyEndpoint מבצע את כל את העיבוד הדרוש, לדוגמה על ידי שימוש ב-JavaScript כדי לקרוא לשירות חיצוני, או אחזור נתונים מחיפוש לשירותי ה-API מאגר מפתח/ערך.

לדוגמה, הקוד הבא מגדיר 'נתיב null':

<RouteRule name="GoNowhere"/>

נתיבי null מותנים יכולים להיות שימושיים. בדוגמה הבאה מוגדר נתיב null מופעל כשכותרת ה-HTTP request.header.X-DoNothing מכילה ערך שאינו null.

<RouteRule name="DoNothingOnDemand">
  <Condition>request.header.X-DoNothing != null</Condition>
</RouteRule>

חשוב לזכור, ניתן לשרשר את RouteRules, כך שנתיב null מותנה בדרך כלל יהיה רכיב של קבוצת RouteRules שנועדה לתמוך בניתוב מותנה.

שימוש מעשי בנתיב null מותנה יתמוך בשמירה במטמון. באמצעות הערך של המשתנה שמוגדר במדיניות 'מטמון', אפשר להגדיר שרת proxy ל-API שיריץ את null ניתוב כשמוצגת רשומה מהמטמון.

<RouteRule name="DoNothingUnlessTheCacheIsStale">
  <Condition>lookupcache.LookupCache-1.cachehit is true</Condition>
</RouteRule>

TargetEndpoint

הצגה של לקוח שקורא ל-HTTP
  לאחר השיפור. הבקשה עוברת דרך נקודת הקצה של שרת ה-proxy ולאחר מכן את נקודת הקצה של היעד לפני שהיא
  מעובד על ידי שירות ה-HTTP. התגובה עוברת דרך סיום היעד ואז
  נקודת קצה (endpoint) של שרת proxy לפני החזרה ללקוח.

נקודת קצה (TargetEndpoint) היא המקבילה היוצאת ל-ProxyEndpoint. נקודת קצה (TargetEndpoint) פועלת בתור לקוח לשירות לקצה עורפי או ל-API – הוא שולח בקשות ומקבל תגובות.

לשרת proxy ל-API אין צורך להגדיר TargetEndpoints. ניתן להגדיר שנקודות ה-ProxyEndpoints יקראו לכתובות URL ישירות. שרת proxy ל-API ללא TargetEndpoints מכיל בדרך כלל ProxyEndpoint קוראת ישירות לשירות לקצה העורפי, או שמוגדר לקריאה לשירות באמצעות Java או JavaScript.

הגדרה של נקודת קצה (endpoint) יעד

/targets/default.xml

נקודת הקצה (TargetEndpoint) מגדירה את החיבור היוצא מ-Apigee Edge לשירות אחר, או משאב.

דוגמה להגדרה של נקודת קצה (TargetEndpoint):

<TargetEndpoint name="default">
  <PreFlow/>
  <Flows/>
  <PostFlow/>
  <HTTPTargetConnection>
    <URL>http://mocktarget.apigee.net</URL>
    <SSLInfo/>
  </HTTPTargetConnection>
  <FaultRules/>
  <DefaultFaultRule/>
  <ScriptTarget/>
  <LocalTargetConnection/>
</TargetEndpoint>

הגדרה של נקודת קצה (endpoint) יעד Elements

נקודת קצה (TargetEnd) יכולה להפעיל יעד באחת מהדרכים הבאות:

  • HTTPTargetConnection לקריאות HTTP(S)
  • LocalTargetConnection לשרשור מקומי של שרת proxy לשרת proxy
  • ScriptTarget בשיחות ל-Edge שמתארח סקריפט Node.js

צריך להגדיר רק אחד מהערכים האלה ב-TargetEndpoint.

שם תיאור ברירת מחדל חובה?
TargetEndpoint
name השם של נקודת הקצה של היעד, חייב להיות ייחודי ב-Proxy ל-API הגדרה אישית. השם של TargetEndPoint משמש ב-ProxyEndpoint RouteRule כדי: בקשות ישירות לעיבוד יוצא. התווים שמותר להשתמש בהם בשם מוגבלים לאחת מהאפשרויות הבאות: A-Za-z0-9._\-$ %. לא רלוונטי כן
PreFlow הגדרת כללי המדיניות בתהליך ה-PreFlow של בקשה או תשובה. לא רלוונטי כן
Flows
הגדרת כללי המדיניות בתהליכים המותנים של בקשה או תשובה.
לא רלוונטי כן
PostFlow
הגדרת כללי המדיניות בתהליך ה-PostFlow של בקשה או תשובה.
לא רלוונטי כן
HTTPTargetConnection

עם רכיבי הצאצא, מציין פוטנציאל חשיפה של משאב בקצה העורפי דרך HTTP.

אם משתמשים ב-HTTPTargetConnection, לא מגדירים סוגים אחרים של חיבורי יעד (ScriptTarget או LocalTargetConnection).

URL הגדרת כתובת הרשת של שירות הקצה העורפי שאליו עוברת נקודת הקצה (TargetEndpoint) הודעות בקשה. לא רלוונטי לא
LoadBalancer

מגדירה הגדרה אישית אחת או יותר בשם TargetServer. שרת TargetServer בעל שם אפשר להשתמש בהגדרות האישיות של איזון העומסים שמגדיר שתי נקודות קצה או יותר בחיבורים.

אפשר גם להשתמש ב-TargetServers כדי להפריד בין הגדרות לשרת proxy ל-API כתובות URL של נקודות קצה (endpoints) של שירות לקצה העורפי.

ראו טעינה איזון בין שרתים בקצה עורפי.

לא רלוונטי לא
Properties ניתן להגדיר קבוצה של הגדרות אופציונליות של תצורת HTTP כמאפיינים של <TargetEndpoint> לא רלוונטי לא
SSLInfo אפשר לקבוע הגדרות TLS/SSL בנקודת קצה (TargetEndpoint) כדי לשלוט ב-TLS/SSL. בין שרת ה-proxy ל-API לבין שירות היעד. פרטים נוספים זמינים במאמר הגדרת יעד קצה של נקודת קצה (endpoint) של SSL/TLS. לא רלוונטי לא
LocalTargetConnection כולל רכיבי הצאצא שלו, מציין משאב שניתן לגשת אליו באופן מקומי, תוך עקיפת הרשת מאפיינים כמו איזון עומסים ומעבדי הודעות.

כדי לציין את משאב היעד, צריך לכלול את רכיב הצאצא של ה-APIProxy (עם רכיב ProxyEndpoint) או רכיב הצאצא של הנתיב.

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

אם משתמשים ב-LocalTargetConnection, לא צריך להגדיר סוגים אחרים של חיבורים ביעד (HTTPTargetConnection או ScriptTarget).

APIProxy מציינת את השם של שרת proxy ל-API שישמש כיעד של בקשות. שרת ה-Proxy היעד חייבים להיות באותו ארגון ובאותם סביבה כמו בקשות השליחה של שרת ה-proxy. זהו חלופה לשימוש ברכיב 'נתיב'. לא רלוונטי לא
ProxyEndpoint משמש יחד עם APIProxy כדי לציין את שם ה-ProxyEndpoint של שרת ה-Proxy כיעד. לא רלוונטי לא
Path מציינת את נתיב נקודת הקצה של שרת proxy ל-API שישמש כיעד לבקשות. היעד שרת ה-proxy חייב להיות באותו ארגון ובאותו סביבה כמו הבקשות שנשלחות על ידי שרת ה-proxy. הזה הוא חלופה לשימוש ב-APIProxy. לא רלוונטי לא
FaultRules
מגדיר איך נקודת הקצה של היעד מגיבה לשגיאה. כלל שגוי מציין פריטים:
  • תנאי שמציין את השגיאה שיש לטפל בה לפי הקטגוריה, קטגוריית המשנה או שם השגיאה
  • מדיניות אחת או יותר שמגדירה את ההתנהגות של כלל השגיאה עבור התנאי התואם

מידע נוסף זמין בקטע טיפול בתקלות.

לא רלוונטי לא
DefaultFaultRule

טיפול בשגיאות (מערכת, העברה, העברת הודעות או מדיניות) שאינן מפורשות מטופל על ידי FaultRule אחר.

מידע נוסף זמין בקטע טיפול בתקלות.

לא רלוונטי לא
ScriptTarget
ResourceURL

מגדיר את סוג המשאב (צומת) ואת השם של סקריפט Node.js הראשי מטמיעים את הפונקציונליות של TargetEndpoint.

<ResourceURL>node://server.js</ResourceURL>

צריך לכלול את הסקריפט בקובצי המשאבים של שרת ה-proxy של ה-API. ראו הוספת Node.js קיים לשרת proxy ל-API.

אם משתמשים ב-ScriptTarget, לא מגדירים סוגים אחרים של חיבורי יעד (HTTPTargetConnection או LocalTargetConnection).

לא רלוונטי כן
EnvironmentVariable

אפשר גם להעביר משתני סביבה לסקריפט הראשי של Node.js.

ראו הסבר על Edge תמיכה במודולים של Node.js.

לא רלוונטי לא
Arguments

אפשר גם להעביר ארגומנטים לסקריפט הראשי של Node.js.

ראו הסבר על Edge תמיכה במודולים של Node.js.

לא רלוונטי לא

הגדרה של נקודת קצה (endpoint) של יעד TLS/SSL

בדרך כלל, נקודות הקצה (TargetEndpoints) צריכות לנהל חיבורי HTTPS עם קצה עורפי הטרוגני . לכן יש תמיכה בכמה הגדרות תצורה של TLS/SSL.

TLS/SSL רכיבי ההגדרה של נקודת קצה (Target Endpoint)

שם תיאור ברירת מחדל חובה?
SSLInfo
Enabled מציין אם TLS/SSL מופעל עבור נקודת הקצה. ערך ברירת המחדל הוא true אם <URL> מציין את פרוטוקול HTTPS, ו-false אם <URL> מציין HTTP. true אם <URL> מציין HTTPS לא
TrustStore מאגר מפתחות שמכיל אישורי שרת מהימנים. לא רלוונטי לא
ClientAuthEnabled הגדרה שמפעילה אימות של לקוח יוצא (TLS/SSL דו-כיווני) false לא
KeyStore מאגר מפתחות שמכיל מפתחות פרטיים שמשמשים לאימות לקוח יוצא לא רלוונטי כן (אם ClientAuthEnabled הוא True)
KeyAlias הכינוי של המפתח הפרטי שמשמש לאימות של לקוח יוצא לא רלוונטי כן (אם ClientAuthEnabled הוא True)
Ciphers

צפנים נתמכים ל-TLS/SSL (אבטחת שכבת התעבורה)/SSL. אם לא הוגדרו צפנים, אז כל הצפנים יהיו זמינים ל-JVM.

כדי להגביל את הצפנים, צריך להוסיף את הרכיבים הבאים שבהם מפורטים הצפנים הנתמכים:

<Ciphers>
 <Cipher>TLS_RSA_WITH_3DES_EDE_CBC_SHA</Cipher>    
 <Cipher>TLS_RSA_WITH_DES_CBC_SHA</Cipher>
</Ciphers>
לא רלוונטי לא
Protocols

פרוטוקולים נתמכים עבור TLS/SSL יוצא. אם לא מציינים פרוטוקולים, אז כל הפרוטוקולים יותר יהיו פרוטוקולים שזמינים ל-JVM.

כדי להגביל את הפרוטוקולים, צריך להוסיף את הרכיבים הבאים שמפרטים את הפרוטוקולים הנתמכים:

<Protocols>
 <Protocol>TLSv1.1</Protocol>
 <Protocol>TLSv1.2</Protocol>
</Protocols>
לא רלוונטי לא
CommonName

אם צוין, ערך שעבורו ניתן לאמת את השם הנפוץ של אישור היעד. הערך הזה תקף רק להגדרות של TargetEndpoint ו-TargetServer. זו לא הסיבה תקפה לתצורות של VirtualHost.

כברירת מחדל, הערך שצוין תואם בדיוק לשם הנפוץ של אישור היעד. לדוגמה, שימוש ב-*.myhost.com כערך של <CommonName> יתאים ו- לאמת את שם המארח המיועד אם הערך המדויק *.myhost.com מצוין כשם הנפוץ אישור היעד.

אופציונלי: ב-Apigee אפשר לבצע התאמה עם תווים כלליים לחיפוש באמצעות המאפיין wildcardMatch.

לדוגמה, המערכת תתאים לשם ספציפי שצוין כ-abc.myhost.com באישור היעד והוא יאומת אם התג <CommonName> שלך מוגדר כך:

<CommonName wildcardMatch="true">*.myhost.com</CommonName>

לא רלוונטי לא

דוגמה לנקודת קצה (TargetEndpoint) לדוגמה שבה מופעל אימות של לקוח יוצא

<TargetEndpoint name="default">
  <HttpTargetConnection>
        <URL>https://myservice.com</URL>
    <SSLInfo>
      <Enabled>true</Enabled>
      <ClientAuthEnabled>true</ClientAuthEnabled>
      <KeyStore>myKeystore</KeyStore>
      <KeyAlias>myKey</KeyAlias>
      <TrustStore>myTruststore</TrustStore>
    </SSLInfo>
  </HttpTargetConnection>
</TargetEndpoint>

להוראות מפורטות, ראו הגדרת TLS מ-Edge לקצה העורפי (Cloud ו-Private Cloud).

באמצעות זרימה של משתני זרימה כדי להגדיר ערכי TLS/SSL באופן דינמי.

אפשר גם להגדיר פרטי TLS/SSL באופן דינמי כדי לתמוך בדרישות של זמן ריצה גמיש. לדוגמה, אם שרת ה-proxy שלכם מתחבר לשני יעדים שעשויים להיות שונים (יעד בדיקה יעד ייצור), תוכלו להגדיר ששרת ה-Proxy ל-API יזהה באופן פרוגרמטי את הסביבה שבה הוא ובהגדרה דינמית של הפניות למאגר המפתחות ולמאגר האישורים המתאימים. הבאים המאמר מהקהילה ב-Apigee מסביר את התרחיש הזה בפירוט ומספק מידע על API שניתן לפרוס דוגמאות לשרת proxy: https://community.apigee.com/articles/21424/dynamic-sslinfo-for-targetendpoint-using-variable.html.

בדוגמה הבאה מוצג האופן שבו התג <SSLInfo> יוגדר הגדרה של נקודת קצה (endpoint) – אפשר לספק את הערכים בזמן הריצה, למשל באמצעות Java יתרונות מרכזיים, מדיניות JavaScript או מדיניות הקצאת הודעה. שימוש במשתני ההודעה שכולל את הערכים שרוצים להגדיר.

אפשר להוסיף משתנים רק ברכיבים הבאים.

<SSLInfo>
    <Enabled>{myvars.ssl.enabled}</Enabled>
    <ClientAuthEnabled>{myvars.ssl.client.auth.enabled}</ClientAuthEnabled>
    <KeyStore>{myvars.ssl.keystore}</KeyStore>
    <KeyAlias>{myvars.ssl.keyAlias}</KeyAlias>
    <TrustStore>{myvars.ssl.trustStore}</TrustStore>
</SSLInfo>

באמצעות הפניות להגדרת ערכי TLS/SSL באופן דינמי

כשמגדירים נקודת Endpoint שמשתמשת ב-HTTPS, צריך לקחת בחשבון את המקרה הזה כאשר פג התוקף של אישור ה-TLS/SSL, או ששינוי בתצורת המערכת מחייב לעדכן את האישור. לחשבון Edge להתקנת ענן פרטי, כשמגדירים TLS/SSL באמצעות ערכים סטטיים או באמצעות משתני זרימה, יש סיכוי שתצטרכו להפעיל מחדש את מעבדי ההודעות.

מידע נוסף זמין במאמר עדכון TLS (אבטחת שכבת התעבורה) אישור.

עם זאת, אפשר להגדיר ש-TargetEndpoint ישתמש בהפניה במקום זאת, keystore או Truststore. היתרון בשימוש בקובץ עזר הוא שניתן לעדכן הפניה ל-Keystore או ל-Truststore אחרים כדי לעדכן את אישור ה-TLS/SSL בלי שצריך להפעיל מחדש את מעבדי ההודעות.

לדוגמה, למטה מוצגת נקודת קצה (TargetEndpoint) שמשתמשת בהפניה למאגר המפתחות:

<SSLInfo> 
    <Enabled>true</Enabled> 
    <ClientAuthEnabled>false</ClientAuthEnabled> 
    <KeyStore>ref://keystoreref</KeyStore> 
    <KeyAlias>myKeyAlias</KeyAlias> 
</SSLInfo>

השתמשו בקריאה הבאה ל-POST API כדי ליצור את קובץ העזר שנקרא keystoreref:

curl -X POST  -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references \
-d '<ResourceReference name="keystoreref">
    <Refers>myTestKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:password

בחומר העזר מופיעים השם של מאגר המפתחות והסוג שלו.

תוכלו להשתמש בקריאה הבאה ל-GET API כדי להציג את קובץ העזר:

curl -X GET https://api.enterprise.apigee.com/v1/o/[org_name}/e/{env_name}/references/keystoreref -u uname:password

כדי לשנות מאוחר יותר את ההפניה כך שתפנה למאגר מפתחות אחר, ולוודא שהכינוי כולל אותו שם, השתמשו בקריאת ה-PUT הבאה:

curl -X PUT -H "Content-Type:application/xml" https://api.enterprise.apigee.com/v1/o/{org_name}/e/{env_name}/references/keystoreref \
-d '<ResourceReference name="keystoreref">
    <Refers>myNewKeystore</Refers>
    <ResourceType>KeyStore</ResourceType>
</ResourceReference>' -u email:password

TargetEndpoint עם איזון עומסים ליעד

נקודות יעד (TargetEndpoints) תומכות באיזון עומסים במספר שרתי targetServer בעלי שם באמצעות שלושה עומסים אלגוריתמים של איזון.

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

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

הספרייה /policies בשרת proxy ל-API מכילה את כל כללי המדיניות שזמינים מצורף ל-Fflows בשרת ה-proxy ל-API.

רכיבים של הגדרת מדיניות

שם תיאור ברירת מחדל חובה?
Policy
name

השם הפנימי של המדיניות. התווים שבהם אפשר להשתמש בשם הן מוגבלות עד: A-Za-z0-9._\-$ %. עם זאת, בממשק המשתמש לניהול Edge אוכפים פקודות נוספות הגבלות, כגון הסרה אוטומטית של תווים שאינם אלפאנומריים.

אפשר להשתמש ברכיב <DisplayName> כדי להוסיף תווית בעורך ה-Proxy של ממשק המשתמש לניהול עם שם אחר בשפה טבעית.

לא רלוונטי כן
enabled

צריך להגדיר את הערך true כדי לאכוף את המדיניות.

הגדרת הערך false כ'כיבוי' המדיניות. המדיניות לא תהיה אכיפה גם אם היא ממשיכה להיות מחוברת לזרימה.

true לא
continueOnError

צריך להגדיר את הערך false כדי להחזיר שגיאה כשמדיניות נכשלת. הדבר ההתנהגות הצפויה של רוב כללי המדיניות.

יש להגדיר ל-true כדי שביצוע התהליך יימשך גם לאחר המדיניות נכשל.

false לא
async

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

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

כדי להשתמש בהתנהגות אסינכרונית בשרתי proxy ל-API, ראו מודל אובייקט של JavaScript.

false לא

קובץ מצורף של מדיניות

התמונה הבאה מציגה את רצף הביצוע של זרמי ה-Proxy ל-API:

מציגה לקוח שקורא לשירות HTTP. הבקשה מקבלת את
  ProxyEndpoint ו-TargetEndpoint, שכל אחת מהן מכילה את השלבים להפעלת כללי מדיניות. אחרי
  שירות HTTP מחזיר את התגובה, התגובה מעובדת על ידי TargetEndpoint
  ProxyEndpoing לפני החזרה ללקוח. בהתאם לבקשה, התשובה תעובד
  למדיניות, בשלבים.

כפי שמוצג למעלה:

כללי המדיניות מצורפים כשלבי עיבוד אל Flows. שם המדיניות משמש להפנות למדיניות שצריך לאכוף כשלב עיבוד. הפורמט של קובץ מצורף של מדיניות הוא הבאים:

<Step><Name>MyPolicy</Name></Step>

כללי מדיניות נאכפים לפי הסדר שבו הם מצורפים לתהליך. לדוגמה:

<Step><Name>FirstPolicy</Name></Step>
<Step><Name>SecondPolicy</Name></Step>

הגדרת קבצים מצורפים של מדיניות Elements

שם תיאור ברירת מחדל חובה?
Step
Name שם המדיניות שתבוצע באמצעות הגדרת השלב הזו. לא רלוונטי כן
Condition הצהרה מותנית שקובעת אם המדיניות נאכפת או לא. אם למדיניות יש תנאי משויך, המדיניות תופעל רק אם הפונקציה מחזירה את הערך True. לא רלוונטי לא

זרימה

ProxyEndpoint ו-TargetEndpoint מגדירים צינור עיבוד נתונים להודעות בקשה ותגובה בעיבוד. צינור עיבוד נתונים מורכב מתהליך של בקשה ומתהליך תגובה. כל בקשה התנועה ותהליך התגובה מחולקים לחלוקות משנה של 'preFlow', אפשרות אחת או יותר 'מותנית' או 'named' ותזרימיים, ו-PostFlow.

  • PreFlow: תמיד יופעל. מתבצע לפני כל זרימה מותנית.
  • PostFlow: תמיד מופעל. מופעל אחרי כל תהליכים מותנים.

בנוסף, אפשר להוסיף PostClientFlow ל-ProxyEndpoint, שמבצע הרצה אחרי התגובה תוחזר לאפליקציית הלקוח ששלחה את הבקשה. רק המדיניות שלMessageLogging אפשר לצרף תוסף יומן של Google Stackdriver לתהליך הזה. PostClientFlow מפחית את זמן האחזור של שרת ה-proxy ל-API ומאפשר גישה למידע רישום ביומן שלא מחושב עד שהתגובה מוחזרת ללקוח, למשל client.sent.start.timestamp ו-client.sent.end.timestamp.הזרימה נמצאת בשימוש בעיקר למדידה של מרווח הזמן בין חותמות הזמן של ההתחלה והסיום של התשובה הודעה.

לצפייה בסרטון הדרכה קצר

סרטון: צפו בסרטון הקצר הזה בנושא שימוש ב-Message Logging PostClientFlow.

זאת דוגמה ל-PostClientFlow עם מדיניות רישום הודעות ביומן.

    ...
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
    <PostClientFlow>
        <Request/>
        <Response>
            <Step>
                <Name>Message-Logging-1</Name>
            </Step>
        </Response>
    </PostClientFlow>
    ...

צינור עיבוד הנתונים של שרת ה-proxy ל-API מבצע תהליכים לפי הרצף הבא:

צינור עיבוד נתונים:

  1. זרימה מקדימה של בקשת Proxy
  2. תהליכים מותנים לבקשת שרת proxy (אופציונלי)
  3. בקשת Proxy לאחר זרימה (PostFlow)
  4. זרימה מראש של בקשת היעד
  5. תהליכי יעד מותנים של בקשת יעד (אופציונלי)
  6. בקשת יעד ב-PostFlow

צינור עיבוד נתונים:

  1. השלמה מראש של תגובת היעד
  2. תהליכים מותנים של תגובת יעד (אופציונלי)
  3. תגובת יעד ב-PostFlow
  4. זרימה מקדימה של תגובת שרת proxy
  5. תהליכים מותנים לתגובת שרת proxy (אופציונלי)
  6. תגובת שרת proxy לאחר ההעלאה
  7. תגובת PostClientFlow (אופציונלי)

צריך להגדיר ב-ProxyEndpoint רק את ה-flows עם קבצים מצורפים למדיניות הגדרות של TargetEndpoint. יש לציין PreFlow ו-PostFlow רק ב-ProxyEndpoint או הגדרה של נקודת קצה (TargetEndpoint) כשצריך לאכוף מדיניות במהלך טרום-Flow או PostFlow בעיבוד.

בניגוד לתהליכים מותנים, הסדר של הרכיבים PreFlow ו-PostFlow הוא לא חשוב – שרת ה-proxy ל-API תמיד יבצע כל אחת מהן בנקודה המתאימה בצינור עיבוד הנתונים, ללא קשר למיקום שבו הן מופיעות בהגדרה של נקודת הקצה.

זרימות מותנות

שרתי ProxyEndpoints ו-TargetEndpoints תומכים במספר בלתי מוגבל של תהליכים מותנים שנקראה 'זרימה בעלת שם').

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

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

  • כתובת אתר מבוקשת
  • פועל של HTTP (GET/PUT/POST/DELETE)
  • הערך של פרמטר שאילתה, כותרת ופרמטר טופס
  • סוגים רבים אחרים של תנאים

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

<Flows>
  <Flow name="TokenEndpoint">
    <Condition>proxy.pathsuffix MatchesPath "/accesstoken"</Condition>
    <Request>
      <Step>
        <Name>GenerateAccessToken</Name>
      </Step>
    </Request> 
  </Flow>
</Flows>   

רכיבים של הגדרת זרימה

שם תיאור ברירת מחדל חובה?
Flow צינור עיבוד בקשות או תגובות המוגדר על ידי ProxyEndpoint, או TargetEndpoint
Name השם הייחודי של הזרימה. לא רלוונטי כן
Condition הצהרה מותנית שמבצעת הערכה של משתנים או יותר כדי לקבל את הערך True או לא נכון. כל ה-Flow, מלבד הסוגים המוגדרים מראש של PreFlow ו-PostFlow, חייבים להגדיר לתנאי הביצוע שלהם. לא רלוונטי כן
Request צינור עיבוד הנתונים המשויך ל'בקשה לעיבוד הודעות' לא רלוונטי לא
Response צינור עיבוד הנתונים שמשויך לעיבוד הודעות של תגובה לא רלוונטי לא

עיבוד שלבים

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

לדוגמה, בתצורת הזרימה הבאה, כל בקשה נכנסת שלא כוללת סיומת הנתיב /first או /second תגרום ל-ThirdFlow להוציא לפועל, לאכוף את המדיניות שנקראת Return404.

<Flows>
  <Flow name="FirstFlow">
    <Condition>proxy.pathsuffix MatchesPath "/first"</Condition>
    <Request>
      <Step><Name>FirstPolicy</Name></Step>
    </Request>
  </Flow>
  <Flow name="SecondFlow">
    <Condition>proxy.pathsuffix MatchesPath "/second"</Condition>
    <Request>
      <Step><Name>FirstPolicy</Name></Step>
      <Step><Name>SecondPolicy</Name></Step>
    </Request>
  </Flow>
  <Flow name="ThirdFlow">
    <Request>
      <Step><Name>Return404</Name></Step>
    </Request>
  </Flow>
</Flows>

משאבים

משאבים (קובצי משאבים לשימוש בשרתי proxy ל-API) הם סקריפטים, קוד וטרנספורמציות XSL שאפשר לצרף ל-Fflows באמצעות כללי מדיניות. האירועים האלה מופיעים בקטע 'סקריפטים' הקטע ב-API עורך proxy בממשק המשתמש של הניהול.

מידע נוסף זמין במאמר קובצי משאבים בסוגי המשאבים.

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

כללי המדיניות יכולים להפנות למשאב שמאוחסן ברמת הארגון בכל סביבה. כללי המדיניות בסביבה הזו יכולים להפנות למשאב שמאוחסן ברמת הסביבה. א' רק כללי מדיניות באותו שרת proxy של ה-API יכולים להפנות למשאב שמאוחסן ברמת ה-proxy ל-API.