מכסות שימוש ספציפיות ל-API מאפשרות להגביל את מספר הבקשות ליום, מספר הבקשות לדקה או מספר הבקשות לדקה לכל משתמש. כך תוכלו לשלוט בתנועת הנתונים בשירות ולעמוד במגבלות של רמת השימוש בחינם. המכסות האלה מגבילות את נפח השימוש בכל API ולא את ההוצאות הכוללות, ולכן מומלץ להשתמש בתקציבים ובהתראות על תקציבים כדי למנוע עלויות לא צפויות בפרויקט שלם או בחשבון לחיוב. לאכיפת המכסות יש תקופת השהיה אחרי שחורגים מהסף, לכן כדאי להגדיר טווח ביטחון כשמגדירים מכסות כדי לנהל את עלויות החיוב.
הצגה ושינוי של המכסות על מספר הבקשות
אפשר להגדיר מגבלות לכל הבקשות לכל ממשק API שניתן לחיוב. רוב ממשקי ה-API מגדירים מגבלות ברירת מחדל, אבל אפשר לשנות את המגבלה הזו עד למקסימום שצוין על ידי Google. בחלק מממשקי ה-API המגבלות נמוכות לפני שמפעילים את החיוב בפרויקט.
כדי לראות או לשנות את המגבלות של ה-API:
- נכנסים לדף APIs & Services Dashboard במסוף Google Cloud .
- ברשימת הפרויקטים, בוחרים פרויקט או יוצרים פרויקט חדש.
- לוחצים על שם ה-API שרוצים לראות.
- לוחצים על Quotas (מכסות). אם הכרטיסייה Quotas לא מופיעה בסרגל הניווט של הכרטיסיות, זה אומר שלא הוגדרו מכסות ל-API שבחרתם.
- בשדה Filter מזינים את המאפיינים והערכים של המכסה שרוצים להגביל. לדוגמה, כדי למצוא את המכסה Subnetworks, מזינים Quota:Subnetworks.
- לוחצים על תיבת הסימון שלצד המכסה שרוצים להגביל, ואז על EDIT QUOTAS.
- ממלאים את טופס שינוי המכסה, כולל את השדה של המגבלה החדשה שרוצים ליצור.
- לוחצים על SUBMIT REQUEST.
חלק מממשקי ה-API מאפשרים לשלוח טופס כדי לבקש הגדלה של המגבלה. יש ממשקי API שמאפשרים לציין מכסת שימוש גבוהה יותר רק אם החיוב מופעל בפרויקט.
הגבלת בקשות לכל משתמש
כדי למנוע ממשתמשים פרטיים לנצל את מכסת ה-API, בחלק מממשקי ה-API יש מגבלת ברירת מחדל של מספר הבקשות לדקה לכל משתמש.
כדי לבדוק אם ה-API שלכם כולל מגבלת ברירת מחדל לכל משתמש לדקה, חפשו אותה במכסות של ה-API כמו שמתואר בהוראות שבמאמר הצגה ושינוי של מגבלות על מספר הבקשות. אם קיימת מגבלת ברירת מחדל כזו עבור ה-API, אפשר לשנות את הערך הזה כדי להגביל את המכסה שזמינה לכל משתמש. לשם כך, צריך לפעול לפי השלבים בהוראות האלה. אם ה-API לא כולל את מגבלת ברירת המחדל הזו במכסות שלו, אי אפשר להוסיף או לשנות אותה.
כברירת מחדל, המערכת משתמשת בזהות המאומתת כדי לזהות משתמשים ספציפיים באופן ייחודי. חשבון המשתמש המאומת כולל חשבונות משתמשים באמצעות טוקנים של OAuth, חשבונות שירות או זהויות מאוחדות של עומסי עבודה. אם אין חשבון משתמש מאומת, המערכת משתמשת בכתובת ה-IP של הלקוח. התנהגות ברירת המחדל הזו פעילה כברירת מחדל, ולכן מכסות לכל משתמש נאכפות גם אם לא מציינים מזהה משתמש.
יש שתי מגבלות עיקריות לשימוש בכתובת ה-IP של הלקוח כגיבוי:
- כתובות IP ציבוריות משותפות: כמה משתמשים מאחורי שער של תרגום כתובות רשת (NAT) או שרת proxy, כמו משרד בבית ספר או נקודת קצה של VPN, ישתפו כתובת IP ציבורית אחת. הבקשות שלהם יצטברו באותה מכסת בקשות, מה שעלול לגרום לניצול מוקדם של המכסה.
- התחמקות שמבוססת על כתובת IP: משתמשים עם גישה לבלוקים גדולים של כתובות IPv6 או לשרתי proxy של VPN יכולים לשנות את כתובות ה-IP של הלקוחות כדי לעקוף את הגבלת הקצב, ולכן אי אפשר להסתמך על חזרה לכתובת IP לצורך הגנה חזקה מפני התנהלות פוגעת.
אם אתם קוראים ל-API מאפליקציה בצד השרת, שבה קוד הקריאה מתארח בשרת שבבעלותכם, מטעם כמה משתמשים, ואתם משתמשים בפרינציפל מאומת יחיד, כל הקריאות ישויכו לפרינציפל היחיד הזה. במקרה כזה, אי אפשר להגביל את השיחות של משתמשים פרטיים בנפרד. כדי למנוע את זה, אפשר לבטל את ברירת המחדל של זיהוי המשתמשים ואת השימוש במכסת המחיצות על ידי ציון הפרמטר quotaUser או הכותרת X-Goog-Quota-User בבקשות. הפרמטרים האלה מוגדרים במסמכים בנושא פרמטרים של המערכת.
כדי לשנות את הגדרת ברירת המחדל של זיהוי המשתמש באמצעות הפרמטר quotaUser או הכותרת X-Goog-Quota-User, צריך לזהות את פרויקט המכסה באמצעות מפתח API תקין עם הגבלות על שירותים, כמו הגבלות על כתובת IP או הגבלות על הגורם המפנה ב-HTTP. אחרת, המערכת מתעלמת מהפרמטר או מהכותרת וחוזרת לזיהוי המשתמש שמוגדר כברירת מחדל.
כדי לזהות משתמש, צריך להשתמש בפרמטר השאילתה quotaUser=userID של כתובת ה-URL. הערך הזה משמש רק לאכיפת מכסת שימוש לטווח קצר, ולכן לא צריך להשתמש במזהה משתמש אמיתי. אפשר לבחור כל מחרוזת שרירותית באורך של עד 40 תווים שמזהה משתמש באופן ייחודי.
כדי להגן על פרטיות המשתמשים ולהגביל את נפח המדדים, Google Cloud המסוף
ו-Cloud Monitoring לא שומרים או מציגים נתוני טלמטריה שנותחו לפי
quotaUserכתובת IP או לפי משתמשים בודדים. אתם יכולים לראות את מכסת הפרויקט הכוללת ואת סך השימוש, אבל אתם לא יכולים לעקוב אחרי משתמשים ספציפיים, לבטל את המכסה שלהם או להגדיר התראות לגביהם.
אם ה-API לא כולל מגבלת ברירת מחדל לדקה לכל משתמש, המערכת מתעלמת מהערכים של quotaUser.
הצגה ועריכה של כל המכסות של ממשקי ה-API בפרויקט
בדף Quotas שבקטע IAM & Admin במסוףGoogle Cloud , אפשר לראות את כל המכסות של ממשקי API שניתן לחייב בפרויקט מסוים, לערוך אותן ולבקש להגדיל אותן.
כדי לראות ולערוך את המכסות של כל ממשקי ה-API שניתנים לחיוב בפרויקט:
- נכנסים לדף Quotas במסוף Google Cloud .
- ברשימת הפרויקטים, בוחרים פרויקט או יוצרים פרויקט חדש. בדף Quotas של הפרויקט שנבחר מוצגת רשימה של כל סוגי המכסות שזמינים בכל שירות.
- לוחצים על Filter table כדי לסנן את רשימת המכסות לפי מאפיין ספציפי.
- מסמנים את התיבה לצד המכסות שרוצים לערוך. כדי לסמן חלק מתיבות הסימון, צריך להפעיל את החיוב בפרויקט.
- לוחצים על EDIT QUOTAS.
- בחלונית Quota changes (שינויים במכסות) שמוצגת, מרחיבים את תצוגת השירות, עורכים את המכסות בשירות לפי הצורך ולוחצים על DONE (סיום).
- חוזרים על הפעולה כדי לערוך את המכסות בכל אחד מהשירותים שנבחרו.
- מכסות ברירת המחדל מאוכלסות מראש בתיבות הקלט.
- שירות עם סמל התראה () בשליחה מכיל שגיאות קלט.
- כדי לערוך עוד מכסות, בוחרים אותן כמו שמתואר למעלה.
- כדי להסיר שירות מחלונית Quota changes, מעבירים את העכבר מעל תצוגת השירות שלא הורחבה ולוחצים על סמל המחיקה ().
- כשמסיימים לערוך את המכסות, לוחצים על הבא.
- אם הבקשה לעריכת המכסה צריכה להיבדק, יוצג הטופס Contact details. ממלאים את הפרטים ליצירת קשר בטופס.
- לוחצים על שליחת בקשה.