הוספת המדיניות של Spike Arrest ל-API

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

מה תלמדו

במדריך הזה תלמדו:

  • יש להוסיף מדיניות שתשפיע על הבקשה והתגובה.
  • הצגת השפעות המדיניות.

מה צריך?

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

הוספת המדיניות בנושא מעצרים

במדריך הזה תוסיפו ותגדירו את המדיניות 'SpikeArrest' כדי להגן על שירות היעד מפני עליות פתאומיות בתנועה, שעלולות להיגרם על ידי עלייה בשימוש בלקוחות עם באגים, או התקפות זדוניות. כשמספר הבקשות חורג ממגבלת הקצב של יצירת הבקשות, ה-API מחזיר שגיאת HTTP 500 עבור הבקשה.

מוסיפים את מדיניות Spike Arrest לשרת proxy של API:

  1. נכנסים לאתר apigee.com/edge.
  2. בסרגל הניווט הימני, בוחרים באפשרות פיתוח > שרתי proxy של API.
  3. בוחרים את שרת ה-API של ה-API שאליו רוצים להוסיף את המדיניות Spike Arrest.

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

  4. בעורך של שרת ה-API החדש, לוחצים על הכרטיסייה פיתוח:

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

  5. בחלונית הניווט השמאלית, לוחצים על PreFlow בקטע Proxy Endpoints > default (נקודות קצה בשרת Proxy > ברירת מחדל). (במדריכים אחרים נדון בקונספט של flow.)
  6. לוחצים על הלחצן +שלב העליון, שתואם ל-Request PreFlow. תוצג רשימה מסווגת של כל כללי המדיניות שאפשר ליצור.

    לוחצים על 'שלב בבקשת זרימה מראש'

  7. בוחרים באפשרות מעצר ספייק בקטגוריה 'ניהול תנועה'. תופיע תיבת הדו-שיח 'מדיניות חדשה':

    יצירת מדיניות של מעצר חד

  8. משאירים את שמות ברירת המחדל ולוחצים על הוספה. המדיניות החדשה מצורפת לתהליך PreFlow של בקשה.
  9. ב-Navigator, מוודאים שהאפשרות PreFlow בקטע Proxy Endpoints > default מסומנת ושימו לב לנקודות הבאות בעורך ה-API Proxy:
    • המדיניות החדשה של Spike Arrest-1 נוספה בקטע כללי מדיניות ב-Nvigator בצד ימין של ה-API Proxy Editor.
    • הסמל Spike Arrest-1 מתווסף לתצוגת המעצבים בחלק המרכזי העליון של ה-API Proxy Editor, שמשקף באופן חזותי את זרימת ההודעות של שרת ה-proxy.
    • קוד ה-XML של המדיניות מוצג בתצוגת הקוד בחלק האמצעי התחתון של עורך ה-API של שרת ה-proxy.

    הצגת המדיניות בנושא PreFlow עם Spike Arrest

  10. ב-Nvigator, בוחרים באפשרות Spike Arrest-1 בקטע 'מדיניות' ושימו לב לדברים הבאים ב-API Proxy Editor:
    • פרטי המדיניות מוצגים בתצוגת Designer בחלק העליון האמצעי של API Proxy Editor.
    • ה-XML של המדיניות מוצג בתצוגת הקוד במרכז התחתון של עורך ה-API של שרת ה-Proxy.
    • רכיב ה-XML וערכי המאפיינים של המדיניות מוצגים ב-Property Inspector בצד שמאל של ה-API Proxy Editor.

  11. ב-XML של המדיניות, משנים את הערך של הרכיב <Rate> ל-1pm (שפירושו בערך 2 בקשות שמותרות בכל 60 שניות בענן).

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

    שים לב שהערך Rate ב'סוקר הנכסים' משתנה גם ל-'13:00'. לחלופין, אפשר לשנות את הערך Rate ב'סוקר המאפיינים', והוא יופיע בתצוגת ה-XML.

  12. לוחצים על שמירה כדי לשמור את הגרסה הנוכחית עם השינויים שביצעתם.
  13. מפעילים את ה-API באמצעות curl, במקום שם הארגון ב-Apigee את org_name:

    curl "http://org_name-test.apigee.net/getstarted"

    לדוגמה:

    curl "http://ahamilton-eval-test.apigee.net/getstarted" | python -m json.tool

    חשוב לוודא שהבקשה מצליחה ולראות את אותה תגובת XML כפי שראיתם קודם לכן. (אפשר גם להזין רק את כתובת ה-URL בדפדפן אינטרנט).

  14. להוציא לפועל את הפקודה curl (או לרענן את חלון הדפדפן) פעמיים או שלוש פעמים נוספות בתוך דקה אחת, ולשים לב שמופיעה ההודעה הבאה כי חרגת ממגבלת הקצב של יצירת הבקשות:
    {
    "fault": {
      "faultstring":"Spike arrest violation. Allowed rate : 1pm",
      "detail": {
        "errorcode":"policies.ratelimit.SpikeArrestViolation"}
      }
    }

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

  15. עורכים את המדיניות ומגדירים את המגבלה של <Rate> לערך 15pm (כלומר, בערך 2 קריאות שמותרות כל 4 שניות בענן), ולאחר מכן שומרים את שרת ה-proxy של ה-API.
  16. להוציא לפועל את הפקודה curl או לרענן את הדפדפן שוב ושוב (curl מהיר יותר). שימו לב שאם מבצעים שיחה אחת או שתיים במרווחי זמן של 4 שניות, השיחות מצליחות. אם תבצעו את השיחות במהירות, יותר משתי שניות ב-4 שניות, אתם אמורים לקבל תקלה. אבל אחרי כל מרווח של 4 שניות אפשר להמשיך להתקשר, במקום להיחסם למשך דקה שלמה (בהגדרת השעה 13:00).