6

PowerShell 스크립트를 실행하고 응용 프로그램을 배포하기 전에 다시 시작해야하는 elasticbeanstalk 환경이 있습니다. 설명서에 따르면이 내용은 설명서에 따라 지원됩니다.AWS Elasticbeanstalk ebextensions 서버 다시 시작 오류 "빌드 도중 오류가 발생했습니다 : [Errno 4] 중단 된 함수 호출"

명령이 완료된 후 시스템을 다시 부팅해야하는 경우 지정된 시간 (초)이 경과하면 시스템이 재부팅됩니다. 명령의 결과로 시스템이 재부팅되면 Elastic Beanstalk은 구성 파일의 명령 다음 지점까지 복구합니다. 기본값은 60 초입니다. 영원히 지정할 수도 있지만 다른 명령을 실행하기 전에 시스템을 다시 부팅해야합니다. 나는 ebextensions의 .config 파일에 재부팅 명령을 추가 할 때

그러나 나는 elasticbeanstalk에서 다음 예외가

Error occurred during build: [Errno 4] Interrupted function call 

서버의 로그를이 쇼를 다시 부팅 한 후 명령이 난 그렇게 실행 된 것을 앱 배포 단계에서 다시 시작하여 오류가 발생한 것으로 가정합니다.

restart 명령을 제거한 경우 deploy가 준비 될 때까지 기다렸다가 수동으로 다시 시작하십시오. 그러나 이것은 분명히 받아 들일 수없는 것입니다.

필자는 전개 후크 파일 시스템 접근법을 살펴 보았지만 그 중 하나는 작동하지 않으며,이 요구 사항을 즉시 지원해야하는 것처럼 들리면 unessesary처럼 보입니다.

아무도 아이디어가 있습니까?

답변

5

같은 문제가있었습니다. SSL 및 TLS < 1.2를 사용 중지해야합니다. 레지스트리를 변경하고 재부팅해야합니다. 우리의 해결 방법은 container_commands 섹션에서 재부팅을 영원히 기다리는 것입니다. 이것은 제대로 재부팅 한 다음 배포 성공을 유발하는 것으로 보입니다. 그러나 실제로는 재부팅 후에 준비 위치의 코드가 실제 최종 파일 대상 (inetpub/wwwroot)에 내장되어 배포되는 것을 포함하지 않습니다. 이 문제를 해결하려면 재부팅 직전에 로컬 스테이징 디렉토리의 파일을 웹 루트로 직접 복사하십시오.

+0

답변 주셔서 감사합니다. 한 가지 질문은, 문서에서 영원히 지정하는 것이 수동으로 다시 시작해야한다고 생각한 것입니까? docs에서 - "명령이 완료된 후 시스템을 재부팅해야하는 경우 지정된 시간 (초)이 지나면 시스템이 재부팅됩니다."그리고 "영원히 지정할 수도 있지만 다른 명령을 실행하기 전에 시스템을 다시 부팅해야합니다." –

+0

네, 분명히 말하지만, 실제로 명령을 통해 시스템을 재부팅하라는 말을하는 데 실제로 적용되지 않는다고 말할 수 있습니다. 나는 당신이 MSI 또는 무언가를 통해 꾸러미를 설치했고 그 꾸러미가 시스템을 재부팅해야한다면 더 관련 있다고 생각한다. PowerShell을 통해 Restart-Computer를 호출하면 컴퓨터가 즉시 재부팅됩니다. 또 재부팅 - 컴퓨터 또는 재부팅을 강제하는 다른 방법 중 하나를 호출하고 waitAfterCompletion이 충분히 재부팅 할 시간이 없으면 배포가 실패하는 것으로 나타났습니다. – jstill