ניהול מכסות של צרכנים

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

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

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

הצגת מכסת השירות

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

  1. כדי להשתמש ב-gcurl, מריצים את פקודת alias הבאה עם טוקן אימות:

    alias gcurl='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json"'
    

    מידע נוסף זמין במאמר בנושא הפעלת Service Usage API.

  2. כדי להציג את כל מגבלות המכסה של כל המדדים שחלים על צרכן מסוים, משתמשים בשיטה הבאה:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/SERVICE_NAME/projects/PROJECT_ID/consumerQuotaMetrics
    

    מחליפים את מה שכתוב בשדות הבאים:

    • SERVICE_NAME: השם של השירות.
    • PROJECT_ID: המזהה של פרויקט הצרכן שמעניין אתכם.

    התשובה שתוחזר תכיל את רשימת המדדים שהוגדרו על ידי השירות. לכל מדד יופיעו רשימת המגבלות שחלות על הצרכן הזה, הערכים של המגבלות האלה והשינויים מברירת המחדל. זוהי דוגמה לתשובה:

    {
      "metrics": [
        {
          "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests",
          "metric": "airport_requests",
          "displayName": "Airport Requests",
          "consumerQuotaLimits": [
            {
              "name": "services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests/limits/%2Fmin%2Fproject",
              "metric": "airport_requests",
              "unit": "1/min/{project}",
              "quotaBuckets": [
                {
                  "effectiveLimit": "5",
                  "defaultLimit": "5",
                }
              ]
            }
          ],
        }
      ]
    }
    
  3. לכל מדד בתגובה יש שדה שם. כדי לבדוק את הגדרות המכסה של מדד מסוים, ולא של כל המדדים, צריך להשתמש בשם שלו בכתובת ה-URL:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/METRIC_NAME
    

    מחליפים את METRIC_NAME בשם המלא של המדד. לדוגמה:

    services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests

  4. לכל מגבלה בתוך המדד יש שדה שם. כדי לבדוק את ההגדרות של מכסה מסוימת במדד מסוים, ולא את כל המגבלות על מדד מסוים או על כל המדדים, צריך להשתמש בשם של המגבלה בכתובת ה-URL:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME
    

    מחליפים את LIMIT_NAME בשם המלא של המגבלה. לדוגמה:

    services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics/airport_requests/limits/%2Fmin%2Fproject

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

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

  1. כדי להחיל שינוי מברירת המחדל שהגדיר הבעלים של שירות מנוהל, אתם צריכים קודם להשתמש באחת מהשיטות שלמעלה כדי למצוא את מגבלת המכסה שאתם רוצים לשנות, ולהשתמש בשדה השם שלה כדי לזהות אותה:

    gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME/producerOverrides -d '{"override": {"override_value": "12345"} }'
    

    אתם יכולים להשתמש בקריאה הזו כדי להחיל שינוי חדש מברירת המחדל או כדי לעדכן שינוי קיים בערך חדש. כדי להעניק מכסה לא מוגבלת למגבלה מסוימת, יש להשתמש בערך '1-' בתור השינוי מברירת המחדל.

    אם הקריאה תסתיים בהצלחה, היא תחזיר מזהה פעולה שמייצג את הפעולה המתמשכת בשרת, בזמן שהבקשה לשינוי המכסה תעבור למערכות הקצה העורפי:

    {
      "name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
    }
    
  2. כדי לבדוק את התקדמות הפעולה, אתם צריכים להשתמש בשם שלה:

    gcurl https://serviceconsumermanagement.googleapis.com/v1/OPERATION_NAME
    

    כשהקריאה מחזירה הודעה שכוללת את המחרוזת ‎ "done":true‏, סימן שהפעולה הסתיימה. אם הפעולה נכשלת, ההודעה הזו תכלול גם את פרטי השגיאה.

    כדי לבדוק אם שינוי מסוים הוחל, אתם יכולים לחזור על הקריאה לשיטה שמציגה את מגבלת המכסה, עבור המגבלה המסוימת הזו. מגבלת המכסה אמורה לכלול עכשיו את השדה producerOverride.

אילוץ של שינויים משמעותיים במכסה

אם האכיפה של השינוי מברירת המחדל תגרום לירידה של המכסה בשיעור של יותר מ-10%, הקריאה תידחה, כאמצעי בטיחות למניעת ירידה מהירה מדי במכסה. כדי להתעלם מההגבלה הזו, צריך להשתמש בדגל האילוץ:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME/producerOverrides -d '{"override": {"override_value": "0"}, "force": true}'

החלת שינויים מברירת המחדל למכסה של אזור או תחום

מגבלות מכסה מסוימות נאכפות לפי אזור (region) או לפי תחום (zone). האינדיקציה לכך היא הימצאות של ‎ /{region} או ‎ /{zone} ביחידת המגבלה.

החלה של שינוי מברירת המחדל על מגבלה כזו תשנה את המכסה הבסיסית לכל האזורים או התחומים. אם אתם רוצים לשנות את המכסה רק לאזור או לתחום מסוימים, אתם צריכים להשתמש בשדה המיקום:

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/LIMIT_NAME/producerOverrides -d '{"override": {"override_value": "135", "dimensions": {"region": "asia-south1"} } }'