Le hook d'événement de cycle de vie de mon déploiement dans AWS CodeDeploy appelle une applet de commande Windows PowerShell qui renvoie des erreurs. Cependant, l'applet de commande renvoie un code de sortie égal à 0 (réussite) et le déploiement signale une réussite. Je veux m'assurer que les erreurs avec fin d’exécution et sans fin d’exécution de l’applet de commande PowerShell entraînent l'échec de mes hooks d'événements de cycle de vie dans CodeDeploy.
Brève description
Par défaut, les applets de commande PowerShell s'exécutent jusqu'à la fin et renvoient un code de sortie égal à 0, sauf en cas d'erreur irrécupérable ou avec fin d’exécution. CodeDeploy ne signale pas d'échec du hook d'événement du cycle de vie à moins que le script associé ne renvoie un code de sortie différent de 0.
Pour que les hooks d'événements du cycle de vie échouent lorsque des erreurs sans fin d’exécution se produisent, modifiez le comportement du script. Pour modifier le comportement du script, configurez la variable $ErrorActionPreference dans l'applet de commande sur 'Stop'. PowerShell arrête ensuite l'exécution de l'applet de commande et renvoie un code de sortie de 1 pour les erreurs avec fin d’exécution et sans fin d’exécution.
Pour plus d'informations, consultez la section Comprendre les erreurs sans fin d’exécution dans PowerShell sur le blog Microsoft Scripting.
Résolution
Important : La résolution suivante fonctionne avec Windows PowerShell 5.1 et versions supérieures.
1. Vérifiez la version de Windows PowerShell que vous utilisez en exécutant la commande $PSVersionTable suivante :
$PSVersionTable
2. Si votre version de Windows PowerShell est antérieure à la version 5.1, mettez à niveau votre version de PowerShell. Pour obtenir des instructions, consultez la page Télécharger et installer Windows PowerShell 5.1 sur le site Web de Microsoft Docs.
3. Incluez le code suivant au début de votre applet de commande PowerShell :
$ErrorActionPreference = 'Stop'
PowerShell arrête maintenant l'applet de commande et renvoie un code de sortie égal à 1 pour les erreurs avec fin d’exécution et sans fin d’exécution.
Informations connexes
about_Preference_Variables sur le site Web de Microsoft
Section 'hooks' AppSpec
Surveillance des déploiements à l'aide des outils Amazon CloudWatch
Afficher les journaux AWS CodeDeploy dans la console Amazon CloudWatch