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 バックエンドサーバを保護するために、登録したメソッドごとに制限する1秒当たりのリクエスト数
canaryDistributionRate Float Conditional Canaryリクエストの実行率
  • useDistributionRatetrueの場合、必須

リクエスト例

リクエストのサンプルコードは次の通りです。

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のレスポンスステータスコードをご参照ください。

レスポンス例

レスポンスのサンプルコードは次の通りです。

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