הגדרת מכסות

בדף הזה מוסבר איך להגדיר מכסות ל-API ב-Cloud Endpoints Frameworks. מהן מכסות?

Java

במסגרת התהליך הבא, אנחנו מניחים שכבר:

כדי להגדיר מכסות ב-API:

  1. בקובץ שמכיל את ההערות בהיקף API, מוסיפים את השורה הבאה להערה ‎ @Api:

    limitDefinitions = {
          @ApiLimitMetric(
            name = "YOUR_METRIC_NAME",
            displayName = "YOUR_METRIC_DISPLAY_NAME",
            limit = YOUR_QUOTA_LIMIT)
    }
    
    • מחליפים את YOUR_METRIC_NAME בשם שמתאר את מונה בקשות ה-API.
    • מחליפים את YOUR_METRIC_DISPLAY_NAME בטקסט שמוצג בדף Endpoints > Services > Quotas כדי לזהות את המכסה.
    • מחליפים את YOUR_QUOTA_LIMIT בערך של מספר שלם. זהו מספר הבקשות שאפליקציה שמשויכת לפרויקט של צרכן Google Cloud יכולה לשלוח בדקה. לדוגמה:

        @Api(
            name = "echo",
            version = "v1",
            namespace =
              @ApiNamespace(
                ownerDomain = "echo.example.com",
                ownerName = "echo.example.com",
                packagePath = ""
              ),
            limitDefinitions = {
              @ApiLimitMetric(
                name = "read-requests",
                displayName = "Read requests",
                limit = 1000),
              @ApiLimitMetric(
                name = "list-requests",
                displayName = "List requests",
                limit = 100),
              @ApiLimitMetric(
                name = "write-requests",
                displayName = "Write requests",
                limit = 50),
            }
        )
      
  2. לכל שיטה שרוצים להחיל עליה מכסה, מוסיפים את הפרטים הבאים להערה @ApiMethod:

    metricCosts = {
                 @ApiMetricCost(
                   name ="YOUR_METRIC_NAME",
                   cost = YOUR_COST)
    }
    
    • מחליפים את YOUR_METRIC_NAME בשם שציינתם בפרמטר limitDefinitions בהערה @Api.
    • מחליפים את YOUR_COST בערך מספרי שמציין את העלות של כל בקשה.

      לדוגמה:

        @ApiMethod(name = "echo",
                   metricCosts = {
                     @ApiMetricCost(
                       name = "read-requests",
                       cost = 1)
                   })
        public Message echo(Message message, @Named("n") @Nullable Integer n) {
          // ...function code here...
        }
      
  3. פורסים את ה-API.

מידע נוסף על ההערות שמופיעות במכסות

Python

במסגרת התהליך הבא, אנחנו מניחים שכבר:

כדי להגדיר מכסות ב-API:

  1. בקובץ שמכיל את הדקורטור של ה-API, יוצרים רשימה של מופעי LimitDefinition, בדומה לזו:

    quota_limits = [
      endpoints.LimitDefinition(
        "YOUR_METRIC_NAME",
        "YOUR_METRIC_DISPLAY_NAME",
        limit)
    ]
    
    • מחליפים את YOUR_METRIC_NAME בשם שמתאר את מונה בקשות ה-API.
    • מחליפים את YOUR_METRIC_DISPLAY_NAME בטקסט שמוצג בדף Endpoints > Services > Quotas כדי לזהות את המכסה.
    • מחליפים את limit בערך של מספר שלם. זהו מספר הבקשות שאפליקציה שמשויכת לפרויקט של צרכן Google Cloudיכולה לשלוח בדקה. לדוגמה:

        quota_limits = [
          endpoints.LimitDefinition('read-requests', 'Read Requests', 1000),
          endpoints.LimitDefinition('list-requests', 'List Requests', 100),
          endpoints.LimitDefinition('write-requests', 'Write Requests', 50),
        ]
      
  2. מוסיפים את המכסה ל-decorator של ה-API על ידי הקצאה שלה לארגומנט limit_definitions. לדוגמה:

      @endpoints.api(name='bookstore',
                     version='v1',
                     limit_definitions=quota_limits)
    
  3. לכל שיטה שרוצים להחיל עליה מכסה, מקצים מילון לארגומנט METRIC_COSTS של מעצב השיטה. המפתח צריך להיות שם שציינתם בארגומנט limit_definitions של ה-decorator של ה-API, והערך הוא מספר שלם שמציין את העלות של כל בקשה. לדוגמה:

      @endpoints.method(path='shelves/{shelf}',
                        http_method='GET',
                        metric_costs={'read-requests': 1})
      def get_shelf(self, request):
      # ...function code here...
    
  4. פורסים את ה-API.

מידע נוסף על המאפיינים לציון מכסות מפורט בהמשך: