Configurer les quotas

Cette page explique comment configurer des quotas pour votre API dans Cloud Endpoints Frameworks. Pour une présentation des fonctionnalités fournies par les quotas, consultez la page À propos des quotas.

Java

La procédure suivante suppose que vous avez déjà :

Pour configurer des quotas sur votre API :

  1. Dans le fichier contenant les annotations appliquées au niveau de l'API, ajoutez le code suivant à votre annotation @Api :

    limitDefinitions = {
          @ApiLimitMetric(
            name = "YOUR_METRIC_NAME",
            displayName = "YOUR_METRIC_DISPLAY_NAME",
            limit = YOUR_QUOTA_LIMIT)
    }
    
    • Remplacez YOUR_METRIC_NAME par un nom qui décrit le compteur de requêtes API.
    • Remplacez YOUR_METRIC_DISPLAY_NAME par le texte affiché sur la page Endpoints > Services > Quotas afin d'identifier le quota.
    • Remplacez YOUR_QUOTA_LIMIT par une valeur entière. Il s'agit du nombre de requêtes qu'une application associée au projet Google Cloud d'un utilisateur peut exécuter en une minute. Exemple :

        @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. Pour chaque méthode à laquelle vous souhaitez appliquer un quota, ajoutez le code suivant à l'annotation @ApiMethod :

    metricCosts = {
                 @ApiMetricCost(
                   name ="YOUR_METRIC_NAME",
                   cost = YOUR_COST)
    }
    
    • Remplacez YOUR_METRIC_NAME par le nom que vous avez spécifié dans le paramètre limitDefinitions de l'annotation @Api.
    • Remplacez YOUR_COST par une valeur entière qui spécifie le coût pour chaque requête.

      Exemple :

        @ApiMethod(name = "echo",
                   metricCosts = {
                     @ApiMetricCost(
                       name = "read-requests",
                       cost = 1)
                   })
        public Message echo(Message message, @Named("n") @Nullable Integer n) {
          // ...function code here...
        }
      
  3. Déployez l'API.

Pour plus d'informations sur les annotations utilisées dans les quotas, consultez les liens ci-dessous :

Python

La procédure suivante suppose que vous avez déjà :

Pour configurer des quotas sur votre API :

  1. Dans le fichier contenant le décorateur d'API, créez une liste d'instances LimitDefinition, semblable à celle-ci :

    quota_limits = [
      endpoints.LimitDefinition(
        "YOUR_METRIC_NAME",
        "YOUR_METRIC_DISPLAY_NAME",
        limit)
    ]
    
    • Remplacez YOUR_METRIC_NAME par un nom qui décrit le compteur de requêtes API.
    • Remplacez YOUR_METRIC_DISPLAY_NAME par le texte affiché sur la page Endpoints > Services > Quotas afin d'identifier le quota.
    • Remplacez limit par une valeur entière. Il s'agit du nombre de requêtes qu'une application associée au projet Google Cloud d'un utilisateur peut exécuter en une minute. Exemple :

        quota_limits = [
          endpoints.LimitDefinition('read-requests', 'Read Requests', 1000),
          endpoints.LimitDefinition('list-requests', 'List Requests', 100),
          endpoints.LimitDefinition('write-requests', 'Write Requests', 50),
        ]
      
  2. Ajoutez votre quota au décorateur d'API en l'attribuant à l'argument limit_definitions. Exemple :

      @endpoints.api(name='bookstore',
                     version='v1',
                     limit_definitions=quota_limits)
    
  3. Pour chaque méthode à laquelle vous souhaitez appliquer un quota, attribuez un dictionnaire à l'argument METRIC_COSTS du décorateur de méthode. La clé doit être le nom que vous avez spécifié dans l'argument limit_definitions du décorateur d'API, et la valeur est un entier qui spécifie le coût de chaque requête. Exemple :

      @endpoints.method(path='shelves/{shelf}',
                        http_method='GET',
                        metric_costs={'read-requests': 1})
      def get_shelf(self, request):
      # ...function code here...
    
  4. Déployez l'API.

Pour plus d'informations sur les décorateurs utilisés dans les quotas, consultez les liens ci-dessous :