Canary 수정

Prev Next

Classic/VPC 환경에서 이용 가능합니다.

활성화된 Canary 설정을 수정합니다.

요청

요청 형식을 설명합니다. 요청 형식은 다음과 같습니다.

메서드 URI
PATCH /products/{product-id}/apis/{api-id}/stages/{stage-id}/canary

요청 헤더

API Gateway에서 공통으로 사용하는 헤더에 대한 자세한 내용은 API Gateway 요청 헤더를 참조해 주십시오.

요청 경로 파라미터

파라미터에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
product-id String Required API에 연결된 Product ID
  • 1~10자
api-id String Required Product에 생성된 API ID
  • 1~10자
stage-id String Required API에 생성된 Stage ID
  • 1~10자

요청 구문

요청 구문은 다음과 같습니다.

{
  "canaryCacheTtlSec" : 0,
  "useDistributionRate" : true,
  "canaryConditions" : [ {
    "parameterName" : "parameterName",
    "parameterCode" : "REQUEST_HEADER",
    "parameterValue" : "parameterValue"
  } ],
  "canaryEndpointDomain" : "canaryEndpointDomain",
  "canaryThrottleRps" : 0,
  "canaryDistributionRate" : 0
}

요청 바디

요청 바디에 대한 설명은 다음과 같습니다.

필드 타입 필수 여부 설명
canaryCacheTtlSec String Optional 캐시를 유지할 초(sec) 입력
  • 1~3600
useDistributionRate Boolean Required 요청을 Stage와 Canary에 분배하는 방법 결정
  • true | false
    • true: Percentage 분배 방식(Canary 요청의 실행 비율 지정)
    • false: Condition 분배 방식(설정한 헤더 및 쿼리 스트링과 요청이 동일할 때 Canary 요청 실행)
canaryConditions[] Object Conditional Canary 테스트 요청 정보
  • useDistributionRatefalse인 경우 필수
canaryConditions[].parameterName String Conditional 파라미터 이름
  • useDistributionRatefalse인 경우 필수
canaryConditions[].parameterCode String Conditional 파라미터 유형
  • REQUEST_HEADER | REQUEST_QUERY
    • REQUEST_HEADER: 헤더 유형 파라미터
    • REQUEST_QUERY: 쿼리 유형 파라미터
  • useDistributionRatefalse인 경우 필수
canaryConditions[].parameterValue String Conditional 파라미터 요청 값
  • useDistributionRatefalse인 경우 필수
canaryEndpointDomain String Required Canary의 Endpoint 도메인을 설정
canaryThrottleRps String Optional 백엔드 서버를 보호하기 위해, 등록한 메서드별로 제한할 초당 요청 수
canaryDistributionRate Float Conditional Canary 요청의 실행 비율
  • useDistributionRatetrue인 경우 필수

요청 예시

요청 예시는 다음과 같습니다.

curl -X PATCH 'https://apigateway.apigw.gov-ntruss.com/api/v1/products/{product-id}/apis/{api-id}/stages/{stage-id}/canary' \
--header 'Content-Type: application/json' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}'
--data '{
  "canaryCacheTtlSec" : 0,
  "useDistributionRate" : true,
  "canaryConditions" : [ {
    "parameterName" : "parameter-***",
    "parameterCode" : "REQUEST_HEADER",
    "parameterValue" : "*****"
  } ],
  "canaryEndpointDomain" : "canaryEndpointDomain",
  "canaryThrottleRps" : 6,
  "canaryDistributionRate" : 1.4658129
}'

응답

응답 형식을 설명합니다.

응답 구문

구문은 다음과 같습니다.

{
  "stageId": "stageId",
  "canaryCertificateId": "canaryCertificateId",
  "canaryDeploymentNo": 0,
  "canaryDistributionRate": 0.0,
  "canaryCacheTtlSec": 0,
  "canaryThrottleRps": 0,
  "canaryEndpointDomain": "canaryEndpointDomain",
  "canaryDeployedTime": "2024-05-08T09:46:57.364Z",
  "canaryDeploymentDescription": "canaryDeploymentDescription",
  "deployedStageDeploymentNo": 0,
  "useDistributionRate": true,
  "canaryConditions": [
    {
      "parameterCode": "parameterCode",
      "parameterName": "parameterName",
      "parameterValue": "parameterValue"
    }
  ]
}

응답 상태 코드

API Gateway에서 공통으로 사용하는 응답 상태 코드에 대한 자세한 내용은 API Gateway 응답 상태 코드를 참조해 주십시오.

응답 예시

응답 예시는 다음과 같습니다.

{
  "stageId": "*****7mhdv",
  "canaryCertificateId": "",
  "canaryDeploymentNo": 251437,
  "canaryDistributionRate": 1.4658129,
  "canaryCacheTtlSec": 1,
  "canaryThrottleRps": 6,
  "canaryEndpointDomain": "NONE",
  "canaryDeployedTime": "2024-05-08T09:46:57.364Z",
  "canaryDeploymentDescription": "",
  "deployedStageDeploymentNo": 251381,
  "useDistributionRate": true,
  "canaryConditions": [
    {
      "parameterCode": "REQUEST_HEADER",
      "parameterName": "****",
      "parameterValue": "****"
    }
  ]
}