El enlace de eventos del ciclo de vida de mi despliegue en AWS CodeDeploy llama a un cmdlet de Windows PowerShell que devuelve errores. Sin embargo, el cmdlet devuelve un código de salida de 0 (éxito) y el despliegue informa de que se ha realizado correctamente. ¿Cómo me aseguro de que los errores de cmdlet de PowerShell de finalización o no finalización provoquen que los enlaces de eventos de mi ciclo de vida fallen en CodeDeploy?
Descripción breve
De forma predeterminada, los cmdlets de PowerShell se ejecutan hasta su finalización y devuelven un código de salida de 0, a menos que se produzca un error irrecuperable o de finalización. CodeDeploy no informa de ningún error en el enlace de eventos del ciclo de vida, a menos que el script asociado devuelva un código de salida distinto de 0.
Para provocar que los enlaces de eventos del ciclo de vida fallen cuando se producen errores de no finalización, cambie el comportamiento del script. Para cambiar el comportamiento del script, configure la variable $ErrorActionPreference del cmdlet en «Stop». A continuación, PowerShell detiene la ejecución del cmdlet y devuelve un código de salida de 1 tanto para los errores de finalización como para los de no finalización.
Para obtener más información, consulte Explicación de los errores de no finalización en PowerShell en el blog de scripting de Microsoft.
Resolución
Importante: La siguiente resolución funciona con Windows PowerShell 5.1 y versiones posteriores.
1. Compruebe la versión de Windows PowerShell que utiliza mediante la ejecución del siguiente comando $PSVersionTable:
$PSVersionTable
2. Si su versión de Windows PowerShell es anterior a la 5.1, actualice su versión de PowerShell. Para obtener instrucciones, consulte Descargar e instalar Windows PowerShell 5.1 en el sitio web de Microsoft Docs.
3. Incluya el siguiente código al principio del cmdlet de PowerShell:
$ErrorActionPreference = 'Stop'
PowerShell ahora detiene el cmdlet y devuelve un código de salida de 1 tanto para los errores de finalización como para los de no finalización.
Información relacionada
Acerca de las variables de preferencia (sitio web de Microsoft Docs)
Sección de «enlaces» de AppSpec
Supervisión de los despliegues con las herramientas de Amazon CloudWatch
Vea los registros de AWS CodeDeploy en la consola de Amazon CloudWatch