בהתאם ל-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 שמאפשרים להגדיר מכסה גבוהה יותר רק אם החיוב מופעל בפרויקט.
המידע בקטעי המכסות של תוכנית Premium מתייחס לתוכנית Google Maps Premium, שכבר לא מוצעת. אם אתם לא לקוחות של תוכנית Google Maps Premium, אל תערכו את הקטעים האלה.
הגבלת הבקשות לכל משתמש
כדי למנוע ממשתמשים פרטיים לנצל את מכסת ה-API, חלק מממשקי ה-API כוללים מגבלה שמוגדרת כברירת מחדל לכל משתמש לדקה.
כדי לבדוק אם ה-API כולל מגבלת ברירת מחדל לכל משתמש לדקה, צריך לחפש אותה במכסות של ה-API, כמו שמתואר בהוראות שבמאמר הצגה ושינוי של המגבלות על מספר הבקשות. אם קיימת מגבלת ברירת מחדל כזו עבור ה-API, אפשר לשנות את הערך הזה כדי להגביל את המכסה שזמינה לכל משתמש. לשם כך, צריך לפעול לפי השלבים שמפורטים בהוראות האלה. אם ה-API לא כולל את מגבלת ברירת המחדל הזו במכסות שלו, אי אפשר להוסיף או לשנות אותה.
כברירת מחדל, המערכת משתמשת בזהות המאומתת כדי לזהות משתמשים בודדים באופן ייחודי. חשבון המשתמש המאומת כולל חשבונות משתמשים באמצעות טוקנים של OAuth, חשבונות שירות או זהויות מאוחדות של עומסי עבודה. אם אין חשבון משתמש מאומת, המערכת משתמשת בכתובת ה-IP של הלקוח. התנהגות ברירת המחדל הזו פעילה, ולכן מכסות לכל משתמש נאכפות גם אם לא מציינים מזהה משתמש.
יש שתי מגבלות עיקריות לשימוש בכתובת ה-IP של הלקוח כגיבוי:
- כתובות IP ציבוריות משותפות: כמה משתמשים מאחורי שער או שרת proxy של תרגום כתובות רשת (NAT), כמו משרד בבית ספר או נקודת קצה של 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 המסוףquotaUser ו-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. ממלאים את הפרטים ליצירת קשר בטופס.
- לוחצים על שליחת בקשה.