Promover uma versão canary
Ao promover uma versão canário, ela substitui as configurações atuais do estágio. A promoção de uma versão canary não desativa o canary no estágio. Para desativar um canary, você deve remover as configurações do canary do estágio. Para promover uma versão canário, realize o procedimento a seguir.
-
Redefina o ID de implantação do estágio com as configurações do ID de implantação do canary. Isso atualiza o snapshot da API do estágio com o snapshot do canary, tornando a versão de teste também a versão de produção.
-
Atualize as variáveis de estágio com as variáveis de estágio do canary, se houver alguma. Isso atualiza o contexto de execução da API do estágio com o do canary. Sem essa atualização, a nova versão da API pode produzir resultados inesperados se a versão de teste usar diferentes variáveis de estágio ou valores diferentes de variáveis de estágio existentes.
-
Defina a porcentagem do tráfego do canary para 0,0 %.
Tópicos
Promover uma versão canary usando o console do API Gateway
Para usar o console do API Gateway para promover uma implantação da versão canary, faça o seguinte:
Como promover uma implantação da versão de canário
-
Inicie uma sessão no console do API Gateway e escolha uma API existente no painel de navegação principal.
-
No painel de navegação principal, selecione Estágios e escolha um estágio existente.
-
Selecione a guia Canário.
-
Escolha Promover canário.
-
Confirme as alterações a serem realizadas e selecione Promover canário.
Após a promoção, a versão de produção faz referência à mesma versão da API (deploymentId) que a versão canary. Você pode verificar isso usando a AWS CLI. Por exemplo, consulte Promover uma versão canary usando a AWS CLI.
Promover uma versão canary usando a AWS CLI
Para promover a versão canary para a versão de produção usando os comandos da AWS CLI, chame o comando update-stage
para copiar o deploymentId
associado ao canary no deploymentId
associado ao estágio, para redefinir a porcentagem de tráfego do canary para zero (0.0
) e para copiar qualquer variável de estágio vinculada ao canary nas variáveis vinculadas ao estágio correspondentes.
Suponha que tenhamos uma implantação da versão canary, descrita por um estágio semelhante ao seguinte:
{ "_links": { ... }, "accessLogSettings": { ... }, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "canarySettings": { "deploymentId": "eh1sby", "useStageCache": false, "stageVariableOverrides": { "sv2": "val3", "sv1": "val2" }, "percentTraffic": 10.5 }, "createdDate": "2017-11-20T04:42:19Z", "deploymentId": "nfcn0x", "lastUpdatedDate": "2017-11-22T00:54:28Z", "methodSettings": { ... }, "stageName": "prod", "variables": { "sv1": "val1" } }
Chamamos a seguinte solicitação update-stage
para promovê-la:
aws apigateway update-stage \ --rest-api-id {rest-api-id} \ --stage-name '{stage-name}' \ --patch-operations '[{ "op": "replace", "value": "0.0", "path": "/canarySettings/percentTraffic" }, { "op": "copy", "from": "/canarySettings/stageVariableOverrides", "path": "/variables" }, { "op": "copy", "from": "/canarySettings/deploymentId", "path": "/deploymentId" }]'
Após a promoção, o estágio agora se parece com:
{ "_links": { ... }, "accessLogSettings": { ... }, "cacheClusterEnabled": false, "cacheClusterStatus": "NOT_AVAILABLE", "canarySettings": { "deploymentId": "eh1sby", "useStageCache": false, "stageVariableOverrides": { "sv2": "val3", "sv1": "val2" }, "percentTraffic": 0 }, "createdDate": "2017-11-20T04:42:19Z", "deploymentId": "eh1sby", "lastUpdatedDate": "2017-11-22T05:29:47Z", "methodSettings": { ... }, "stageName": "prod", "variables": { "sv2": "val3", "sv1": "val2" } }
Promover uma versão canário ao estágio não a desabilita, e a implantação continua sendo uma implantação da versão canário. Para torná-la uma implantação da versão de produção regular, você deve desabilitar as configurações do canary. Para obter mais informações sobre como desabilitar uma implantação da versão canary, consulte Desativar uma versão de canário.