Wie kann ich dafür sorgen, dass Fehler beim Beenden und Nicht-beenden von PowerShell-cmdlets dazu führen, dass Lebenszyklusereignis-Hooks in CodeDeploy fehlschlagen?

Lesedauer: 2 Minute
0

Mein Event-Hook für den Bereitstellungs-Lifecycle in AWS CodeDeploy ruft ein Windows PowerShell-cmdlet auf, das Fehler zurückgibt. Das cmdlet gibt jedoch den Beendigungscode 0 (erfolgreich) zurück, und die Bereitstellung meldet einen Erfolg. Ich möchte sicherstellen, dass Fehler beim Beenden und beim Nicht-beenden des PowerShell-cmdlets dazu führen, dass meine Lebenszyklusereignis-Hooks in CodeDeploy fehlschlagen.

Kurzbeschreibung

Standardmäßig werden PowerShell-cmdlets bis zum Ende ausgeführt und geben einen Exit-Code von 0 zurück, es sei denn, es tritt ein nicht behebbarer oder abschließender Fehler auf. CodeDeploy meldet keinen Fehler im Lifecycle-Event-Hook, es sei denn, das zugehörige Skript gibt einen anderen Exit-Code als 0 zurück.

Damit Lifecycle-Event-Hooks fehlschlagen, wenn nicht-beendete Fehler auftreten, ändere das Verhalten des Skripts. Um das Verhalten des Skripts zu ändern, konfiguriere die Variable $ErrorActionPreference im cmdlet auf „Stop“. PowerShell stoppt dann die Ausführung des cmdlets und gibt den Exit-Code 1 für Fehler beim Beenden und Nicht-beenden zurück.

Weitere Informationen findest du im Scripting-Blog unter Nicht beendende Fehler in PowerShell im Microsoft verstehen.

Behebung

Wichtig: Die folgende Methode funktioniert mit Windows PowerShell 5.1 und höher.

1.    Überprüfe, welche Windows PowerShell-Version du verwendest, indem du den folgenden $psVersionTable-Befehl ausführst:

$PSVersionTable

2.    Wenn deine Version von Windows PowerShell älter als Version 5.1 ist, aktualisiere deine PowerShell-Version. Genauere Anweisungen findest du unter Windows PowerShell 5.1 herunterladen und installieren auf der Microsoft Docs-Website.

3.    Füge den folgenden Code am Anfang deines PowerShell-cmdlets ein:

$ErrorActionPreference = 'Stop'

PowerShell stoppt jetzt das cmdlet und gibt den Exit-Code 1 für Fehler beim Beenden und Nicht-beenden zurück.

Ähnliche Informationen

about_Preference_Variables auf der Microsoft-Website

AppSpec-Abschnitt „Hooks“

Überwachung von Bereitstellungen mit Amazon CloudWatch-Tools

Anzeigen von AWS CodeDeploy-Protokolle in der Amazon CloudWatch-Konsole

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 5 Monaten