¿Cómo puedo conseguir que los errores de cmdlet de PowerShell de finalización o no finalización provoquen que los enlaces de eventos del ciclo de vida fallen en CodeDeploy?

3 minutos de lectura
0

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

OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años