할당량 구성

이 페이지에서는 Cloud Endpoints 프레임워크에서 API 할당량을 구성하는 방법을 설명합니다. 할당량이 제공하는 기능의 개요는 할당량 정보를 참조하세요.

자바

다음 절차는 이미 아래 작업을 완료했다고 가정합니다.

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_NAMEEndpoints > 서비스 > 할당량 페이지에서 할당량을 식별할 수 있도록 표시된 텍스트로 바꿉니다.
    • YOUR_QUOTA_LIMIT를 정수 값으로 바꿉니다. 이 값은 소비자의 Google Cloud 프로젝트와 연결된 애플리케이션이 1분 동안 수행할 수 있는 요청 수입니다. 예를 들면 다음과 같습니다.

        @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@Api 주석의 limitDefinitions 매개변수에서 지정한 이름으로 바꿉니다.
    • 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_NAMEEndpoints > 서비스 > 할당량 페이지에서 할당량을 식별할 수 있도록 표시된 텍스트로 바꿉니다.
    • limit를 정수 값으로 바꿉니다. 이 값은 소비자의 Google Cloud 프로젝트와 연결된 애플리케이션이 1분 동안 수행할 수 있는 요청 수입니다. 예를 들면 다음과 같습니다.

        quota_limits = [
          endpoints.LimitDefinition('read-requests', 'Read Requests', 1000),
          endpoints.LimitDefinition('list-requests', 'List Requests', 100),
          endpoints.LimitDefinition('write-requests', 'Write Requests', 50),
        ]
      
  2. limit_definitions 인수에 할당하여 API 데코레이터에 할당량을 추가합니다. 예를 들면 다음과 같습니다.

      @endpoints.api(name='bookstore',
                     version='v1',
                     limit_definitions=quota_limits)
    
  3. 할당량을 적용할 메서드마다 메서드 데코레이터METRIC_COSTS의 인수에 사전을 할당합니다. 키는 API 데코레이터에 대한 limit_definitions 인수에서 지정한 이름이어야 하며, 값은 각 요청의 비용을 지정하는 정수입니다. 예를 들면 다음과 같습니다.

      @endpoints.method(path='shelves/{shelf}',
                        http_method='GET',
                        metric_costs={'read-requests': 1})
      def get_shelf(self, request):
      # ...function code here...
    
  4. API를 배포합니다.

할당량에서 사용하는 데코레이터에 대한 자세한 내용은 다음을 참조하세요.