

# Canary 릴리스 업데이트
<a name="update-canary-deployment"></a>

 Canary 릴리스가 배포된 후 테스트 성능을 최적화하기 위해 Canary 트래픽 백분율을 조정하거나 단계 캐시 사용을 활성화 또는 비활성화할 수 있습니다. 실행 컨텍스트가 업데이트될 때 Canary 릴리스에서 사용되는 단계 변수를 수정할 수도 있습니다. 이러한 업데이트를 수행하려면 [CanarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings)에서 새 값을 사용하여 [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) 작업을 호출합니다.

API Gateway 콘솔, AWS CLI [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) 명령 또는 AWS SDK를 사용하여 Canary 릴리스를 업데이트할 수 있습니다.

**Topics**
+ [API Gateway 콘솔을 사용하여 Canary 릴리스 업데이트](#update-canary-deployment-using-console)
+ [AWS CLI를 사용하여 Canary 릴리스 업데이트](#update-canary-deployment-using-cli)

## API Gateway 콘솔을 사용하여 Canary 릴리스 업데이트
<a name="update-canary-deployment-using-console"></a>

API Gateway 콘솔을 사용하여 단계에서 기존의 Canary 설정을 업데이트하려면 다음을 수행합니다.

**기존 Canary 설정을 업데이트하려면**

1.  API Gateway 콘솔에 로그인하고 기존 REST API를 선택합니다.

1.  기본 탐색 창에서 **스테이지**를 선택한 후 기존 스테이지를 선택합니다.

1.  **Canary** 탭을 선택한 후 **편집**을 선택합니다. **Canary** 탭을 표시하려면 오른쪽 화살표 버튼을 선택해야 할 수도 있습니다.

1.  0.0부터 100.0 사이의 백분율 숫자(0.0과 100.0 포함)를 늘리거나 줄여 **요청 배포**를 업데이트합니다.

1.  **스테이지 캐시** 확인란을 선택하거나 선택 취소합니다.

1.  **Canary 스테이지 변수**를 추가, 제거 또는 수정합니다.

1.  **저장**을 선택합니다.

## AWS CLI를 사용하여 Canary 릴리스 업데이트
<a name="update-canary-deployment-using-cli"></a>

AWS CLI를 사용하여 canary를 업데이트하려면 [https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) 명령을 사용하고 canary의 각 파라미터에 대한 패치 작업을 수정합니다.

Canary가 스테이지 캐시를 사용하는 경우 다음 [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) 명령이 업데이트합니다.

```
aws apigateway update-stage \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations op=replace,path=/canarySettings/useStageCache,value=true
```

다음 [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) 명령은 canary 트래픽 백분율을 업데이트합니다.

```
aws apigateway update-stage \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations op=replace,path=/canarySettings/percentTraffic,value=25.0
```

다음 [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html)는 스테이지 변수를 업데이트합니다. 이 예제에서는 `newVar`이라는 새 스테이지 변수를 생성하고, `var2` 스테이지 변수를 재정의하고, `var1` 스테이지 변수를 제거하는 방법을 보여줍니다.

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}'  \
    --patch-operations '[{                                      
        "op": "replace",                                        
        "path": "/canarySettings/stageVariableOverrides/newVar", 
        "value": "newVal"                                      
      }, { 
        "op": "replace",                                        
        "path": "/canarySettings/stageVariableOverrides/var2",   
        "value": "val4"                                        
      }, {                                                      
        "op": "remove",                                         
        "path": "/canarySettings/stageVariableOverrides/var1"    
      }]'
```

작업들을 단일 `patch-operations` 값으로 결합하면 위의 모두를 업데이트할 수 있습니다.

```
aws apigateway update-stage  \
    --rest-api-id {rest-api-id} \
    --stage-name '{stage-name}' \
    --patch-operations '[{                                       
        "op": "replace",                                         
        "path": "/canarySettings/percentTraffic",                        
        "value": "20.0"                                          
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/useStageCache",                        
        "value": "true"                                          
    }, {                                                         
        "op": "remove",                                          
        "path": "/canarySettings/stageVariableOverrides/var1"    
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/stageVariableOverrides/newVar", 
        "value": "newVal"                                        
    }, {                                                         
        "op": "replace",                                         
        "path": "/canarySettings/stageVariableOverrides/val2",   
        "value": "val4"                                          
      }]'
```

