Redesplegar y deshacer 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.

Redesplegar y deshacer una implementación con CodeDeploy

CodeDeploy resta las implementaciones volviendo a implementar una revisión implementada anteriormente de una aplicación 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 resta automáticamente una implementación. Para obtener 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 elimina una instancia de un grupo de implementaciones, CodeDeploy no desinstala nada que puede que ya se haya instalado en dicha instancia.

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

Cuando se inicia una restauración automática, o cuando inicia manualmente una reimplementación o una restauración manual, CodeDeploy intenta primero eliminar de cada instancia participante todos los archivos que se han instalado correctamente por última vez. CodeDeploy realiza este proceso comprobando el archivo de limpieza:

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

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

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

Por ejemplo, los dos primeros archivos de texto y los dos archivos de script ya estaban implementados una instancia 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 intactos los últimos dos archivos de texto:

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, CodeDeploy no intentará revertir o conciliar de algún modo las acciones realizadas por ningún script en las implementaciones anteriores durante las reimplementaciones posteriores, ya sean recuperaciones manuales o automáticas. Por ejemplo, sic.batyd.batlos archivos contienen lógica para no volver a crear ele.txtyf.txtarchivos si ya existen, luego las versiones anteriores dee.txtyf.txtpermanecerá intacto cada vez que se ejecute CodeDeployc.batyd.baten implementaciones posteriores. 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 reversión con contenido existente

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

  • Fail the deployment: se notifica un error y el estado de la implementación cambia a Failed.

  • 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.

  • Mantener 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 al crear una implementación. Si crea una implementación en la consola, consulteCree una implementación de EC2/Compute Platform local (consola). Si se crea una implementación con elAWS CLI, consulteCree una implementación de plataforma informática (CLI) de EC2/local.

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 podría cargar archivos en la instancia si sus aplicaciones ya están en su entorno de producción, pero desea utilizar CodeDeploy por primera vez para implementarlos.

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 fueron implementados por 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 anterior implementación correcta. 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

Dado que está habilitada la restauración automática para la implementación o grupo de implementaciones, CodeDeploy implementa la última revisión de la aplicación correcta conocida: la 1ª revisión de la aplicación.

Sin embargo, los archivos que deseaba conservar en la 1ª implementación se eliminaron antes de que fallara la 2ª implementación y no se pueden recuperar medianteAWS 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.