Actualizaciones seguras del canario - Amazon CloudWatch

Actualizaciones seguras del canario

Las actualizaciones seguras de CloudWatch Synthetics le permiten probar las actualizaciones en los canarios existentes antes de aplicarlos. Esta característica le ayuda a validar la compatibilidad del canario con los nuevos tiempos de ejecución y otros cambios de configuración, como cambios en el código o la memoria. Esto ayudará a minimizar las posibles interrupciones en la supervisión causadas por actualizaciones erróneas.

Al utilizar las actualizaciones seguras del canario en las actualizaciones de las versiones en tiempo de ejecución, los cambios de configuración y las modificaciones de los scripts de código, puede mitigar el riesgo, mantener una supervisión ininterrumpida, verificar los cambios antes de confirmarlos, actualizar y reducir el tiempo de inactividad.

Requisitos previos

Asegúrese de que los requisitos previos estén completos.

  • Cuenta de AWS con permisos de CloudWatch Synthetics

  • Canario existente en las versiones de tiempo de ejecución compatibles (consulte Limitaciones para ver los tiempos de ejecución compatibles)

  • Incluya tiempos de ejecución compatibles al realizar un simulacro (consulte Limitaciones para ver los tiempos de ejecución compatibles).

Prácticas recomendadas

Estas son algunas prácticas recomendadas que se deben seguir al realizar un canario.

  • Ejecutar un simulacro para validar una actualización del tiempo de ejecución

  • Realizar un simulacro antes de las actualizaciones de producción del canario

  • Revisar los registros y artefactos del canario después de un simulacro

  • Utilizar simulacros para validar las dependencias y la compatibilidad de las bibliotecas

Probar el canario mediante simulacros

Puede probar la actualización del canario con las siguientes opciones:

Uso del flujo de trabajo de edición de la AWS Management Console

  1. Vaya a la consola de CloudWatch Synthetics.

  2. Seleccione el canario que desea actualizar.

  3. En el menú desplegable Acciones, elija Editar.

    Actualice el canario con los cambios que desea probar. Por ejemplo, cambie la versión de tiempo de ejecución o edite el código del script.

  4. En Script del canario, elija Iniciar simulacro para probar y ver los resultados inmediatamente o elija Validar y guardar más tarde en la parte inferior de la página para iniciar la prueba y ver los resultados más tarde en su página Detalles del canario.

  5. Después de que el simulacro tenga éxito, elija Enviar para confirmar sus actualizaciones del canario.

Uso de la AWS Management Console para actualizar los canarios en lote

  1. Vaya a la consola de CloudWatch Synthetics.

  2. Seleccione la página de lista de Synthetics.

  3. Seleccione hasta cinco canarios para los que desea actualizar el tiempo de ejecución.

  4. Seleccione el menú desplegable Acciones y elija Actualizar tiempo de ejecución.

  5. Seleccione Iniciar simulacro para nuevo tiempo de ejecución para iniciarlo y probar los cambios antes de una actualización.

  6. En la página de lista de Synthetics, verá un texto junto a la versión de Tiempo de ejecución del canario que muestra el progreso del simulacro (esto solo se muestra para simulacros que implican una actualización del tiempo de ejecución).

    Una vez que el simulacro se haya realizado correctamente, verá el texto Iniciar actualización.

  7. Seleccione Iniciar actualización para confirmar la actualización del tiempo de ejecución.

  8. Si el simulacro falla, verá el texto Error en el simulacro de actualización. Seleccione el texto para ver el enlace de depuración a la página de detalles del canario.

Uso de la CLI o el SDK de AWS

La API inicia el simulacro para el nombre de canario proporcionado MyCanary y actualiza la versión del tiempo de ejecución a syn-nodejs-puppeteer-10.0.

aws synthetics start-canary-dry-run \ --name MyCanary \ --runtime-version syn-nodejs-puppeteer-10.0 // Or if you wanted to update other configurations: aws synthetics start-canary-dry-run \ --name MyCanary \ --execution-role-arn arn:aws:iam::123456789012:role/NewRole

La API devolverá el DryRunId dentro del DryRunConfigOutput.

Llame a GetCanary con el DryRunId proporcionado para recibir las configuraciones del simulacro del canario y un campo adicional DryRunConfig que contiene el estado del simulacro indicado como LastDryRunExecutionStatus.

aws synthetics get-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX

Para obtener más detalles, utilice GetCanaryRuns con el DryRunId proporcionado para recuperar la ejecución y la información adicional.

aws synthetics get-canary-runs \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX

Después de un simulacro exitoso, puede usar UpdateCanary con el DryRunId proporcionado para confirmar los cambios.

aws synthetics update-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX

Cuando falla por cualquier motivo (el resultado de GetCanaryRuns tendrá los detalles), el resultado de GetCanaryRuns tiene una ubicación de artefacto que contiene registros para depurar. Cuando no hay registros, el simulacro no se pudo crear. Puede validarlo utilizando GetCanary.

aws synthetics get-canary \ --name MyCanary \ --dry-run-id XXXX-XXXX-XXXX-XXXX

Los campos State, StateReason y StateReasonCode muestran el estado del simulacro.

Mediante AWS CloudFormation

En su plantilla para un canario de Synthetics, proporcione el campo DryRunAndUpdate que acepta un valor booleano true o false.

Cuando el valor es true, cada actualización ejecuta un simulacro para validar los cambios antes de actualizar automáticamente el canario. Cuando el simulacro falla, el canario no se actualiza y falla la implementación y la implementación de AWS CloudFormation por un motivo válido. Para depurar este problema, use la consola de AWS Synthetics o, si usa una API, obtenga el ArtifactS3Location usando la API GetCanaryRuns y descargue los archivos *-log.txt para revisar las ejecuciones del registro del canario en busca de errores. Tras la validación, modifique la plantilla del AWS CloudFormation y vuelva a intentar la implementación o utilice la API anterior para validarla.

Cuando el valor es false, Synthetics no ejecutará un simulacro para validar los cambios y confirmará directamente las actualizaciones.

Para obtener información sobre cómo solucionar problemas de un canario con errores, consulte Solución de problemas de un valor controlado.

Plantilla de ejemplo.

SyntheticsCanary: Type: 'AWS::Synthetics::Canary' Properties: Name: MyCanary RuntimeVersion: syn-nodejs-puppeteer-10.0 Schedule: {Expression: 'rate(5 minutes)', DurationInSeconds: 3600} ... DryRunAndUpdate: true

Limitaciones

  • Compatible con las versiones en tiempo de ejecución: syn-nodejs-puppeteer-10.0+, syn-nodejs-playwright-2.0+ y syn-python-selenium-5.1+

  • Solo puede ejecutar un simulacro por canario a la vez.

  • Cuando se produce un error en un simulacro, no se puede actualizar el canario.

  • El simulacro no puede probar ningún cambio en el campo Programación.

nota

Cuando inicie un simulacro con cambios de código para un canario de Playwright y desee actualizar el canario sin proporcionar el DryRunId asociado, debe especificar explícitamente los parámetros del código.