---
title: "Canary 수정"
slug: "apigateway-canarytest-change"
tags: ["API Gateway", "Canary Test"]
updated: 2026-07-23T09:04:29Z
published: 2026-07-23T09:04:29Z
canonical: "api.ncloud-docs.com/apigateway-canarytest-change"
---

> ## Documentation Index
> Fetch the complete documentation index at: https://api.ncloud-docs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Canary 수정

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

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

## 요청

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

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

### 요청 헤더

API Gateway에서 공통으로 사용하는 헤더에 대한 정보는 [API Gateway 요청 헤더](/docs/ai-application-service-apigateway#%EC%9A%94%EC%B2%AD%ED%97%A4%EB%8D%94)를 참조해 주십시오.

### 요청 경로 파라미터

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

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `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` | Array | Conditional | Canary 테스트 요청 정보: [canaryConditions](/docs/apigateway-canarytest-change#canaryConditions) - `useDistributionRate`가 `false`인 경우 필수 |
| `canaryEndpointDomain` | String | Required | Canary의 Endpoint 도메인을 설정 |
| `canaryThrottleRps` | String | Optional | 백엔드 서버를 보호하기 위해, 등록한 메서드별로 제한할 초당 요청 수 |
| `canaryDistributionRate` | Float | Conditional | Canary 요청의 실행 비율 - `useDistributionRate`가 `true`인 경우 필수 |

#### `canaryConditions`

`canaryConditions`에 대한 설명은 다음과 같습니다.

| 필드 | 타입 | 필수 여부 | 설명 |
| --- | --- | --- | --- |
| `parameterName` | String | Conditional | 파라미터 이름 - `useDistributionRate`가 `false`인 경우 필수 |
| `parameterCode` | String | Conditional | 파라미터 유형 - `REQUEST_HEADER` \| `REQUEST_QUERY` - `REQUEST_HEADER`: 헤더 유형 파라미터 - `REQUEST_QUERY`: 쿼리 유형 파라미터 - `useDistributionRate`가 `false`인 경우 필수 |
| `parameterValue` | String | Conditional | 파라미터 요청 값 - `useDistributionRate`가 `false`인 경우 필수 |

### 요청 예시

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

```
curl -X PATCH 'https://apigateway.apigw.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 응답 상태 코드](/docs/ai-application-service-apigateway#%EC%9D%91%EB%8B%B5%EC%83%81%ED%83%9C%EC%BD%94%EB%93%9C)를 참조해 주십시오.

### 응답 예시

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

```
{
  "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": "****"
    }
  ]
}
```
