Come posso fare in modo che sia gli errori fatali sia quelli non fatali del cmdlet di PowerShell causino il fallimento degli hook degli eventi del ciclo di vita in CodeDeploy?

2 minuti di lettura
0

L'hook dell'evento del ciclo di vita dell'implementazione in AWS CodeDeploy chiama un cmdlet di Windows PowerShell che restituisce errori. Tuttavia, il cmdlet restituisce un codice di uscita pari a 0 (operazione riuscita) e l'implementazione riporta esito positivo. Come posso assicurarmi che sia gli errori fatali sia quelli non fatali del cmdlet di PowerShell causino il fallimento degli hook degli eventi del ciclo di vita in CodeDeploy?

Breve descrizione

Per impostazione predefinita, i cmdlet di PowerShell vengono eseguiti fino al completamento e restituiscono un codice di uscita pari a 0, a meno che non si verifichi un errore irrecuperabile o fatale. CodeDeploy non segnala un errore dell'hook dell'evento del ciclo di vita a meno che lo script associato non restituisca un codice di uscita diverso da 0.

Per fare in modo che gli hook degli eventi del ciclo di vita falliscano quando si verificano errori non fatali, modifica il comportamento dello script. Per modificare il comportamento dello script, configurare la variabile $ErrorActionPreference nel cmdlet su 'Stop'. PowerShell interrompe quindi l'esecuzione del cmdlet e restituisce un codice di uscita pari a 1 sia per gli errori fatali sia per quelli non fatali.

Per ulteriori informazioni, consulta Understanding non-terminating errors in PowerShell sul blog di scripting di Microsoft.

Risoluzione

**Importante:**la risoluzione seguente è compatibile con Windows PowerShell 5.1 e versioni successive.

1.    Verifica la versione di Windows PowerShell in uso eseguendo il seguente comando $PSVersionTable:

$PSVersionTable

2.    Se la tua versione di Windows PowerShell è precedente alla versione 5.1, aggiorna la versione di PowerShell. Per istruzioni, consulta Scaricare e installare PowerShell 5.1 sul sito web di Microsoft Docs.

3.    Includi il codice seguente all'inizio del cmdlet PowerShell:

$ErrorActionPreference = 'Stop'

PowerShell ora interrompe il cmdlet e restituisce un codice di uscita pari a 1 sia per gli errori fatali sia per quelli non fatali.


Informazioni correlate

Informazioni sulle variabili di preferenza (sito web di Microsoft Docs)

AppSpec 'hooks' section

Monitoring deployments with Amazon CloudWatch tools

View AWS CodeDeploy logs in the Amazon CloudWatch console

AWS UFFICIALE
AWS UFFICIALEAggiornata 2 anni fa