

# Atualizar uma versão canary
<a name="update-canary-deployment"></a>

 Após uma versão canary ser implantada, ajuste a porcentagem do tráfego canary ou ative ou desative o uso de um cache do estágio para otimizar a performance. Você também pode modificar as variáveis de estágio usadas na versão canary quando o contexto de execução é atualizado. Para fazer essas atualizações, chame a operação [https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html](https://docs.aws.amazon.com/apigateway/latest/api/API_UpdateStage.html) com novos valores em [canarySettings](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#canarySettings). 

Você pode atualizar um lançamento canary usando o console do API Gateway, o comando da AWS CLI [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) ou um SDK da AWS.

**Topics**
+ [Atualizar uma versão canary usando o console do API Gateway](#update-canary-deployment-using-console)
+ [Atualizar uma versão canary usando a AWS CLI](#update-canary-deployment-using-cli)

## Atualizar uma versão canary usando o console do API Gateway
<a name="update-canary-deployment-using-console"></a>

Para usar o console do API Gateway para atualizar as configurações do canary existentes em um estágio, faça o seguinte:

**Como atualizar as configurações existentes do canário**

1.  Faça login no console do API Gateway e selecione uma API REST existente.

1.  No painel de navegação principal, selecione **Estágios** e escolha um estágio existente.

1.  Selecione a guia **Canário** e **Editar**. Talvez seja necessário escolher o botão de seta para a direita para mostrar a guia **Canário**. 

1.  Atualize **Solicitar distribuição** aumentando ou diminuindo a porcentagem entre 0,0 e 100,0. 

1.  Marque ou desmarque a caixa de seleção **Cache de estágio**. 

1.  Adicione, remova ou modifique as **Variáveis de estágio de canário**.

1.  Escolha **Salvar**.

## Atualizar uma versão canary usando a AWS CLI
<a name="update-canary-deployment-using-cli"></a>

Para atualizar um canário por meio da AWS CLI, use o comando [https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) e modifique a operação de patch para cada parâmetro do canário.

O comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) indicado abaixo atualiza se o canário usar o cache de estágio:

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

O comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) indicado abaixo atualiza a porcentagem de tráfego do canário:

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

O comando [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) a seguir atualiza as variáveis de estágio. O exemplo mostra como criar uma variável de estágio chamada `newVar`, substituir a variável de estágio `var2` e remover a variável de estágio `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"    
      }]'
```

Você pode atualizar todas acima combinando as operações em um único valor `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"                                          
      }]'
```

