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
Vaya a la consola de CloudWatch Synthetics.
Seleccione el canario que desea actualizar.
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.
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.
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
Vaya a la consola de CloudWatch Synthetics.
Seleccione la página de lista de Synthetics.
Seleccione hasta cinco canarios para los que desea actualizar el tiempo de ejecución.
Seleccione el menú desplegable Acciones y elija Actualizar tiempo de ejecución.
Seleccione Iniciar simulacro para nuevo tiempo de ejecución para iniciarlo y probar los cambios antes de una actualización.
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.
Seleccione Iniciar actualización para confirmar la actualización del tiempo de ejecución.
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.