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

אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X.
מידע

מה תלמדו

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

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

מה תצטרכו

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

הוספת המדיניות Spike Arrest

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

מוסיפים את מדיניות Spike Arrest (מניעת עליות פתאומיות בתעבורה) ל-proxy ל-API:

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

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

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

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

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

    לוחצים על Step in Request PreFlow (כניסה לשלב ב-Request PreFlow)

  7. בוחרים באפשרות Spike Arrest (מניעת עליות פתאומיות) בקטגוריה Traffic Management (ניהול תנועה). מופיעה תיבת הדו-שיח New Policy (מדיניות חדשה):

    יצירת מדיניות למניעת עליות פתאומיות בתנועה

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

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

  10. בחלונית הניווט, בוחרים באפשרות Spike Arrest-1 (מניעת עליות פתאומיות בתנועה) בקטע Policies (מדיניות) ורושמים את הפרטים הבאים בכלי לעריכת שרת ה-proxy של ה-API:
    • פרטי המדיניות מוצגים בתצוגת המעצב בחלק העליון המרכזי של הכלי לעריכת שרתי proxy של API.
    • קוד ה-XML של המדיניות מוצג בתצוגת הקוד בחלק התחתון של מרכז העריכה של API Proxy.
    • ערכי המאפיינים והרכיבים ב-XML של המדיניות מוצגים בכלי לבדיקת מאפיינים בצד שמאל של הכלי לעריכת שרת proxy של API.

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

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

    שימו לב שהערך Rate בחלונית 'מאפיינים' משתנה גם הוא ל-13:00. לחלופין, אפשר לשנות את הערך של Rate בחלונית Property Inspector, והשינוי ישתקף בתצוגת ה-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> limit to 15pm (שמתורגם לכ-2 קריאות שמותרות כל 4 שניות בענן), ואז שומרים את שרת ה-proxy של ה-API.
  16. מריצים את הפקודה curl או מרעננים את הדפדפן שוב ושוב (הפקודה curl מהירה יותר). שימו לב שאם מבצעים שיחה אחת או שתיים במרווחי זמן של 4 שניות, השיחות מצליחות. אם מבצעים את השיחות במהירות, יותר משתיים תוך 4 שניות, אמורה להתקבל השגיאה. אבל אחרי כל מרווח של 4 שניות, תוכלו להמשיך להתקשר, ולא תיחסמו למשך דקה שלמה (כמו בהגדרה של שעה 13:00).