Edit Canary
    • PDF

    Edit Canary

    • PDF

    Article summary

    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:

    MethodURI
    PATCH/products/{product-id}/apis/{api-id}/stages/{stage-id}/canary

    Request headers

    For headers common to API Gateway, see API Gateway common request headers.

    Request path parameters

    The following describes the parameters.

    FieldTypeRequiredDescription
    product-idStringRequiredProduct ID associated with the API
    • 1 - 10 characters
    api-idStringRequiredAPI ID created on the product
    • 1 - 10 characters
    stage-idStringRequiredStage 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.

    FieldTypeRequiredDescription
    canaryCacheTtlSecStringOptionalSeconds to keep cache (sec)
    • 1 - 3600
    useDistributionRateBooleanRequiredDetermine 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[]ObjectConditionalCanary test request information
    • Required if useDistributionRate is false
    canaryConditions[].parameterNameStringConditionalParameter name
    • Required if useDistributionRate is false
    canaryConditions[].parameterCodeStringConditionalParameter type
    • REQUEST_HEADER | REQUEST_QUERY
      • REQUEST_HEADER: header type parameter
      • REQUEST_QUERY: query type parameter
    • Required if useDistributionRate is false
    canaryConditions[].parameterValueStringConditionalParameter request value
    • Required if useDistributionRate is false
    canaryEndpointDomainStringRequiredSet endpoint domains of Canary
    canaryThrottleRpsStringOptionalNumber of requests per second to limit per registered method to protect backend servers
    canaryDistributionRateFloatConditionalCanary 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 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 response status codes common to API Gateway, 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": "****"
        }
      ]
    }
    

    Was this article helpful?

    What's Next
    Changing your password will log you out immediately. Use the new password to log back in.
    First name must have atleast 2 characters. Numbers and special characters are not allowed.
    Last name must have atleast 1 characters. Numbers and special characters are not allowed.
    Enter a valid email
    Enter a valid password
    Your profile has been successfully updated.