Edit Canary

Prev Next

Available in Classic and VPC

Edit enabled Canary settings.

Request

The following describes the request format for the endpoint. The request format is as follows:

Method URI
PATCH /api/v1/products/{product-id}/apis/{api-id}/stages/{stage-id}/canary

Request headers

For information about the headers common to all API Gateway APIs, see API Gateway request headers.

Request path parameters

You can use the following path parameters with your request:

Field Type Required Description
product-id String Required Product ID associated with the API
  • 1 - 10 characters
api-id String Required API ID created on the product
  • 1 - 10 characters
stage-id String Required Stage ID created on the API
  • 1 - 10 characters

Request syntax

The request syntax is as follows.

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

Request body

The following describes the request body.

Field Type Required Description
canaryCacheTtlSec String Optional Seconds to keep cache (sec)
  • 1 - 3600
useDistributionRate Boolean Required Determine how to distribute requests to stage and Canary
  • true | false
    • true: percentage distribution method (specify the percentage of execution of Canary requests)
    • false: condition distribution method (run a Canary request when the request is identical to the headers and query string set)
canaryConditions[] Object Conditional Canary test request information
  • Required if useDistributionRate is false
canaryConditions[].parameterName String Conditional Parameter name
  • Required if useDistributionRate is false
canaryConditions[].parameterCode String Conditional Parameter type
  • REQUEST_HEADER | REQUEST_QUERY
    • REQUEST_HEADER: header type parameter
    • REQUEST_QUERY: query type parameter
  • Required if useDistributionRate is false
canaryConditions[].parameterValue String Conditional Parameter request value
  • Required if useDistributionRate is false
canaryEndpointDomain String Required Set endpoint domains of Canary
canaryThrottleRps String Optional Number of requests per second to limit per registered method to protect backend servers
canaryDistributionRate Float Conditional Canary request execution rate
  • Required if useDistributionRate is true

Request example

The following is a sample request.

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
}'

Response

The following describes the response format.

Response syntax

The response syntax is as follows.

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

Response status codes

For information about the HTTP status codes common to all API Gateway APIs, see API Gateway response status codes.

Response example

The following is a sample response.

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