Vuelva a implementar y revertir una implementación con CodeDeploy - AWS CodeDeploy

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Vuelva a implementar y revertir una implementación con CodeDeploy

CodeDeploy revierte las implementaciones al volver a implementar una revisión de una aplicación previamente implementada como una nueva implementación. Estas implementaciones restauradas son, desde el punto de vista técnico, nuevas implementaciones, con nuevos ID de implementación, en lugar de versiones recuperadas de una implementación anterior.

Las implementaciones se pueden restaurar de forma automática o manual.

Restauraciones automáticas

Puede configurar una implementación o un grupo de implementaciones para que se restauren automáticamente si falla una implementación o si se supera un umbral de monitorización que haya especificado. En este caso, se implementa la última versión correcta conocida de una revisión de la aplicación. Puede configurar restauraciones automáticas al crear una aplicación o al crear o actualizar un grupo de implementaciones.

Al crear una nueva implementación, también puede optar por anular la configuración de restauración automática especificada para el grupo de implementaciones.

nota

Puede utilizar Amazon Simple Notification Service para recibir una notificación cuando se restaure automáticamente una implementación. Para obtener más información, consulte Monitoring Deployments with Amazon SNS Event Notifications.

Para obtener más información acerca de cómo configurar restauraciones automáticas, consulte Configuración de las opciones avanzadas de un grupo de implementación.

Restauraciones manuales

Si no ha configurado restauraciones automáticas, puede restaurar manualmente una implementación creando una nueva implementación que utilice cualquier revisión de una aplicación implementada anteriormente y siguiendo los pasos para volver a implementar una revisión. Puede hacerlo si una aplicación se ha quedado en un estado desconocido. En lugar de dedicar mucho tiempo a resolver problemas, puede volver a implementar la aplicación a un estado operativo conocido. Para obtener más información, consulte Cree una implementación con CodeDeploy.

nota

Si eliminas una instancia de un grupo de despliegues, CodeDeploy no desinstala nada que pueda estar ya instalado en esa instancia.

Flujo de trabajo de la restauración y reimplementación

Cuando se inicia la reversión automática, o cuando se inicia manualmente una redistribución o reversión manual, CodeDeploy primero intenta eliminar de cada instancia participante todos los archivos que se instalaron correctamente por última vez. CodeDeploy lo hace comprobando el archivo de limpieza:

Archivo /opt/codedeploy-agent/deployment-root/deployment-instructions/deployment-group-ID-cleanup (para las instancias de Amazon Linux, Ubuntu Server y RHEL)

Archivo C:\ProgramData\Amazon\CodeDeploy\deployment-instructions\deployment-group-ID-cleanup (para las instancias de Windows Server)

Si existe, CodeDeploy utiliza el archivo de limpieza para eliminar de la instancia todos los archivos de la lista antes de iniciar la nueva implementación.

Por ejemplo, los dos primeros archivos de texto y los dos archivos de script ya estaban implementados una instancia de Amazon EC2 que ejecutaba Windows Server y los scripts crearon dos archivos de texto más durante los eventos del ciclo de vida de la implementación:

c:\temp\a.txt (previously deployed by CodeDeploy) c:\temp\b.txt (previously deployed by CodeDeploy) c:\temp\c.bat (previously deployed by CodeDeploy) c:\temp\d.bat (previously deployed by CodeDeploy) c:\temp\e.txt (previously created by c.bat) c:\temp\f.txt (previously created by d.bat)

El archivo de limpieza enumerará únicamente los dos primeros archivos de texto y dos archivos de script:

c:\temp\a.txt c:\temp\b.txt c:\temp\c.bat c:\temp\d.bat

Antes de la nueva implementación, CodeDeploy eliminará solo los dos primeros archivos de texto y los dos archivos de script, dejando los dos últimos archivos de texto intactos:

c:\temp\a.txt will be removed c:\temp\b.txt will be removed c:\temp\c.bat will be removed c:\temp\d.bat will be removed c:\temp\e.txt will remain c:\temp\f.txt will remain

Como parte de este proceso, no CodeDeploy intentará revertir ni conciliar ninguna acción realizada por ningún script en implementaciones anteriores durante las redistribuciones posteriores, ya sean reversiones manuales o automáticas. Por ejemplo, si los d.bat archivos c.bat y contienen la lógica de no volver a crear los f.txt archivos e.txt y si ya existen, las versiones anteriores f.txt permanecerán intactas cada vez que se ejecuten e.txt y en las implementaciones posteriores. CodeDeploy c.bat d.bat Puede añadir lógica c.bat y d.bat para comprobar y eliminar siempre las versiones anteriores de e.txt y f.txt antes de crear otras nuevas.

Comportamiento de la restauración con contenido existente

Como parte del proceso de implementación, el CodeDeploy agente elimina de cada instancia todos los archivos instalados en la implementación más reciente. Si los archivos que no formaban parte de una implementación anterior aparecen en las ubicaciones de implementación de destino, puede elegir CodeDeploy qué pasará con ellos durante la siguiente implementación:

  • Dar como errónea la implementación: se notifica un error y el estado de la implementación cambia a Error.

  • Sobrescribir el contenido: la versión del archivo de la revisión de la aplicación sustituye a la versión ya incluida en la instancia.

  • Conservar el contenido: el archivo de la ubicación de destino se conserva y la versión de la revisión de la aplicación no se copia en la instancia.

Puede elegir este comportamiento si crea una implementación. Si está creando una implementación en la consola, consulte Cree una implementación de EC2 /On-Premises Compute Platform (consola). Si va a crear una implementación con AWS CLI, consulteCree una implementación de EC2 /On-Premises Compute Platform () CLI.

Puede optar por conservar los archivos que desea que formen parte de la próxima implementación sin tener que añadirlos al paquete de revisión de la aplicación. Por ejemplo, podría cargar directamente en la instancia los archivos que son necesarios para la implementación pero que no se añadieron al paquete de revisión de la aplicación. O bien, puede cargar archivos a la instancia si sus aplicaciones ya están en su entorno de producción, pero quiere utilizarlos CodeDeploy por primera vez para implementarlas.

En el caso de las restauraciones, en las que se vuelve a implementar la última revisión de la aplicación implementada correctamente debido a un error de implementación, se aplica la opción de gestión de contenido de la última implementación correcta a la implementación de restauración.

Sin embargo, si la implementación errónea se configuró para sobrescribir, en lugar de para conservar los archivos, podría producirse un resultado inesperado durante la restauración. En concreto, los archivos que esperaba conservar puede que los elimine la implementación errónea. Los archivos no están en la instancia cuando se ejecuta la implementación de restauración.

En el siguiente ejemplo, existen tres implementaciones. Cualquier archivo que se sobrescribe (elimina) durante la segunda implementación errónea ya no estará disponible (no se puede conservar) cuando se implemente de nuevo la 1ª revisión de la aplicación durante la 3ª implementación:

Implementación

Revisión de la aplicación

Opción de sobrescritura del contenido

Estado de la implementación

Comportamiento y resultado

1ª implementación

1ª revisión de la aplicación

RETAIN

Succeeded

CodeDeploy detecta archivos en las ubicaciones de destino que no se desplegaron en la implementación anterior. Estos archivos podrían colocarse allí deliberadamente para que formen parte de la implementación actual. Se conservan y registran como parte del paquete de implementación actual.

2ª implementación

2ª revisión de la aplicación

OVERWRITE

Con error

Durante el proceso de implementación, CodeDeploy elimina todos los archivos que forman parte de la implementación anterior exitosa. Esto incluye los archivos que se conservaron durante la 1ª implementación.

Sin embargo, la implementación falla por motivos ajenos.

3ª implementación

1ª revisión de la aplicación

RETAIN

Como la reversión automática está habilitada para la implementación o el grupo de implementaciones, CodeDeploy implementa la última revisión válida de la aplicación conocida, la revisión 1 de la aplicación.

Sin embargo, los archivos que quería conservar en la implementación 1 se eliminaron antes de que la implementación 2 fallara y no se pueden recuperar. AWS CodeDeploy Puede añadirlos usted mismo a la instancia si son necesarios para la 1ª revisión de la aplicación, o puede crear una nueva revisión de la aplicación.