Promoción de un lanzamiento canary - Amazon API Gateway

Promoción de un lanzamiento canary

Cuando se promueve un lanzamiento canary, esta pasa a estar disponible en la etapa de producción de la versión de la API que se está probando. La operación incluye las siguientes tareas:

  • Restablezca el ID de implementación de la etapa con el ID de implementación del lanzamiento canary. De este modo, la instantánea de API de la etapa se actualiza con la instantánea de canary, lo que convierte la versión de prueba también en versión de producción.

  • Actualice las variables de etapa con las variables de canary, si hay alguna. De este modo, el contexto de ejecución de la etapa de la API se actualiza con el de canary. Sin esta actualización, la nueva versión de la API puede producir resultados inesperados si la versión de prueba utiliza otras variables de etapa o los valores de las variables de etapa existentes son diferentes.

  • Establezca el porcentaje del tráfico de canary en 0,0 %.

Cuando se promueve un lanzamiento canary, no se deshabilita canary en la etapa. Para deshabilitar canary, debe eliminar la configuración de canary de la etapa.

Promoción de un lanzamiento canary con la consola de API Gateway

Si desea utilizar la consola de API Gateway para promover la implementación de un lanzamiento canary, haga lo siguiente:

  1. Inicie sesión en la consola de API Gateway y seleccione una API existente en el panel de navegación principal.

  2. Seleccione Stages (Etapas) en la API y elija una etapa existente en la lista Stages (Etapas) para abrir Stage Editor (Editor de etapas).

  3. Seleccione la pestaña Canary en Stage Editor (Editor de etapas).

  4. Seleccione Promote Canary (Promover canary).

  5. Confirme los cambios que desea realizar y seleccione Update (Actualizar).

Tras realizar la promoción, la versión de producción hace referencia a la misma versión de la API (deploymentId) que el lanzamiento canary. Puede comprobarlo a través de la AWS CLI. Por ejemplo, consulte Promoción de un lanzamiento canary a través de la AWS CLI.

Promoción de un lanzamiento canary a través de la AWS CLI

Para promover un lanzamiento canary como versión de producción utilizando los comandos de la AWS CLI, llame al comando update-stage para copiar el deploymentId asociado a canary en el deploymentId asociado a la etapa, para restablecer el porcentaje del tráfico de canary en cero (0.0) y para copiar las variables de etapa vinculadas a canary en las variables correspondientes vinculadas a la etapa.

Supongamos que contamos con una implementación de un lanzamiento canary, descrita por una etapa similar a la siguiente:

{ "_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" } }

Llamamos a la siguiente solicitud update-stage para promocionarla:

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" \ }]'

Tras la promoción, la etapa ahora presenta este aspecto:

{ "_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" } }

Como se puede ver, la promoción de un lanzamiento canary según la etapa no desactiva canary y la implementación sigue siendo una implementación de un lanzamiento canary. Para convertirla en una implementación de una versión de producción ordinaria, debe desactivar la configuración de canary. Para obtener más información acerca de cómo desactivar la implementación de un lanzamiento canary, consulte Desactivación de un lanzamiento canary.