PowerShell cmdlet의 종료하는 오류 및 종료하지 않는 오류로 CodeDeploy에서 수명 주기 이벤트 후크가 실패하게 하려면 어떻게 해야 합니까?

최종 업데이트 날짜: 2022년 2월 3일

AWS CodeDeploy의 배포 수명 주기 이벤트 후크가 Windows PowerShell cmdlet을 호출하지만 이 호출에서 오류를 반환합니다. 하지만 cmdlet은 종료 코드 0(성공)을 반환하고 배포에서 성공을 보고합니다. PowerShell cmdlet의 종료하는 오류 및 종료하지 않는 오류로 CodeDeploy에서 수명 주기 이벤트 후크가 실패하는지 확인하려면 어떻게 해야 합니까?

간략한 설명

기본적으로 PowerShell cmdlet은 복구할 수 없거나 종료하는 오류가 발생하지 않는 한, 실행을 완료하고 종료 코드 0을 반환합니다. 연결된 스크립트가 0이 아닌 종료 코드를 반환하지 않는 한, CodeDeploy는 수명 주기 이벤트 후크 실패를 보고하지 않습니다.

종료하지 않는 오류가 발생할 때 수명 주기 이벤트 후크가 실패하게 하려면 스크립트의 동작을 변경합니다. 스크립트의 동작을 변경하려면 cmdlet에서 $ErrorActionPreference 변수를 'Stop'으로 구성합니다. 그러면 PowerShell은 cmdlet의 실행을 중지하고 종료하는 오류 및 종료하지 않는 오류 모두에 대해 종료 코드 1을 반환합니다.

자세한 내용은 Microsoft 스크립팅 블로그에서 Understanding non-terminating errors in PowerShell을 참조하세요.

해결 방법

중요: 다음 해결 방법은 Windows PowerShell 5.1 이상에서 작동합니다.

1.    다음 $PSVersionTable 명령을 실행하여 사용하는 Windows PowerShell 버전을 확인합니다.

$PSVersionTable

2.    사용하는 Windows PowerShell 버전이 버전 5.1보다 이전 버전인 경우 PowerShell 버전을 업그레이드합니다. 지침은 Microsoft 문서 웹 사이트에서 Windows PowerShell 5.1 다운로드 및 설치를 참조하세요.

3.    PowerShell cmdlet의 시작 부분에 다음 코드를 포함합니다.

$ErrorActionPreference = 'Stop'

이제 PowerShell은 cmdlet을 중지하고 종료하는 및 종료하지 않는 오류 모두에 대해 종료 코드 1을 반환합니다.