소비자 할당량 관리

이 페이지에서는 Service Consumer Management API를 사용하여 서비스의 개별 소비자에게 적용된 할당량 제한을 확인하고 재정의하는 방법을 보여줍니다.

이 가이드에 사용된 용어를 이해하기 위해서는 서비스 할당량 모델을 숙지해야 합니다.

Service Infrastructure API를 사용해서 프로그래밍하려면 Google에서 제공된 클라이언트 라이브러리 중 하나를 사용하는 것이 좋습니다. API를 실험해보려면 이 가이드의 안내에 따라 curl 명령어를 사용해서 전체 애플리케이션 개발 환경을 설정하지 않고 API를 테스트할 수 있습니다.

서비스 할당량 표시

이 가이드에서는 consumer-project-id라는 프로젝트와 myservice.appspot.com이라는 서비스가 사용됩니다. 각 gcurl 명령어에서 사용할 때 원하는 서비스 및 소비자 프로젝트로 바꾸세요.

gcurl을 사용하려면 먼저 인증 토큰으로 다음 alias 명령어를 실행합니다.

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

자세한 내용은 시작하기를 참조하세요.

모든 측정항목에서 특정 소비자에 적용되는 할당량 제한을 모두 보려면 다음 메서드를 사용하세요.

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/services/myservice.appspot.com/projects/consumer-project-id/consumerQuotaMetrics

이 호출은 서비스에서 정의된 측정항목 목록에 대응됩니다. 각 항목에는 이 소비자에 적용되는 측정항목에 대한 제한 목록과 그러한 제한에 해당하는 값, 모든 우선 적용 값이 포함됩니다. 응답 예시는 다음과 같습니다.

{
  "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",
            }
          ]
        }
      ],
    }
  ]
}

응답의 각 측정항목에는 이름 필드가 있습니다. 모든 측정항목 대신 해당 측정항목에 대해서만 할당량 설정을 조사하려면 URL에서 해당 이름을 사용합니다.

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

마찬가지로 측정항목 내의 각 제한에는 이름 필드가 있습니다. 한 측정항목의 또는 모든 측정항목의 모든 제한 대신 해당 측정항목의 해당 제한에 대해서만 할당량 설정을 조사하려면 URL에 해당 이름을 사용합니다.

gcurl https://serviceconsumermanagement.googleapis.com/v1beta1/{name}

제작자 우선 적용값 적용

서비스의 소유자 또는 관리자는 특정 소비자의 특정 제한에 제작자 우선 적용값을 적용하여, 해당 제한에 대한 할당량 증가를 부여할 수 있습니다.

제한을 확인하려면 먼저 위에 표시된 방법 중 하나에 따라 원하는 할당량 제한을 찾고, 해당 이름 필드를 사용해서 여기에 제작자 우선 적용값을 적용합니다.

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

이 호출은 새로운 우선 적용 값을 적용하거나 기존 우선 적용 값을 새로운 값으로 업데이트하는 데 사용될 수 있습니다. 제한에 무제한 할당량을 부여하려면 우선 적용 값으로 '-1'을 사용합니다.

호출이 성공하면 할당량 변경이 백엔드 시스템으로 전달될 때 서버에서 진행 중인 작업을 나타내는 작업 식별자가 반환됩니다.

{
  "name": "operations/quf.92accba3-6530-4fc1-9a95-c1280d48a6b7"
}

작업 진행 상태를 확인하려면 해당 이름을 사용합니다.

gcurl https://serviceconsumermanagement.googleapis.com/v1/{name}

이 호출이 "done":true가 포함된 메시지로 대응하면 작업이 완료된 것입니다. 작업이 실패했으면 메시지에 오류 세부정보가 포함됩니다.

또한 특정 제한에 원래 get 호출을 반복하여 변경사항이 적용되었는지 여부를 확인할 수 있습니다. 제한에 이제 추가적인 'producerOverride' 필드가 포함됩니다.

큰 할당량 변경 강제 적용

우선 적용 값으로 인해 적용된 할당량이 10% 이상 감소하면 실수로 인해 할당량이 너무 빠르게 감소하지 않도록 방지하기 위한 안전 조치에 따라 호출이 거부됩니다. 이러한 제한을 무시하려면 force 플래그를 사용합니다.

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

리전별 또는 영역별 할당량 우선 적용값 적용

일부 할당량 제한은 리전 또는 영역 기준으로 적용됩니다. 이것은 제한 단위에 표시된 /{region} 또는 /{zone}을 통해 알 수 있습니다.

이러한 제한에 우선 적용값을 적용하면 모든 리전 또는 영역에서 기본 할당량이 변경됩니다. 특정 리전 또는 영역에서만 할당량을 변경하려면 위치 필드를 사용합니다.

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