Tôi có môi trường Elasticbeanstalk cần chạy tập lệnh PowerShell và khởi động lại trước khi ứng dụng được triển khai. Theo tài liệu này, tài liệu này được hỗ trợ theo tài liệuLỗi khởi động lại máy chủ ERS Elasticbeanstalk ebextensions "Lỗi xảy ra trong quá trình xây dựng: [Errno 4] Gọi hàm gián đoạn"
Nếu hệ thống yêu cầu khởi động lại sau khi lệnh hoàn tất, hệ thống khởi động lại sau số giây được chỉ định đã hết. Nếu hệ thống khởi động lại như là kết quả của một lệnh, Elastic Beanstalk sẽ phục hồi đến điểm sau lệnh trong tệp cấu hình. Giá trị mặc định là 60 giây. Bạn cũng có thể chỉ định mãi mãi, nhưng hệ thống phải khởi động lại trước khi bạn có thể chạy lệnh khác.
Tuy nhiên khi tôi thêm một lệnh khởi động lại để tập một .config ebextensions tôi nhận được ngoại lệ sau đây từ elasticbeanstalk
Error occurred during build: [Errno 4] Interrupted function call
Các bản ghi trên máy chủ sau khi nó đã khởi động lại cho thấy rằng các lệnh được thực hiện vì vậy tôi giả định lỗi là do khởi động lại trong giai đoạn triển khai ứng dụng.
Nếu tôi xóa lệnh khởi động lại, hãy triển khai, hãy đợi lệnh đó sẵn sàng, sau đó kích hoạt khởi động lại theo cách thủ công, hoạt động tốt. Nhưng điều này rõ ràng là không thể chấp nhận được.
Tôi đã xem xét phương pháp triển khai hệ thống tệp triển khai nhưng điều đó không hoạt động, hoặc có vẻ không được đáp ứng vì có vẻ như nó sẽ hỗ trợ yêu cầu này ra khỏi hộp.
Có ai có ý tưởng nào không?
Cảm ơn câu trả lời, hãy thử dùng thử. Một câu hỏi, từ doc của tôi nghĩ rằng xác định mãi mãi sẽ yêu cầu khởi động lại bằng tay? Từ tài liệu - "Nếu hệ thống yêu cầu khởi động lại sau khi lệnh hoàn tất, hệ thống sẽ khởi động lại sau khi số giây đã chỉ định trôi qua" và sau đó "Bạn cũng có thể chỉ định mãi, nhưng hệ thống phải khởi động lại trước khi bạn có thể chạy lệnh khác." –
Vâng, nó chắc chắn nói rằng, nhưng tốt nhất tôi có thể nói rằng không thực sự áp dụng để cụ thể nói với hệ thống để khởi động lại thông qua lệnh. Tôi cho rằng đó là liên quan nhiều hơn đến nếu bạn đã cài đặt một gói thông qua một MSI hoặc một cái gì đó và gói đó yêu cầu khởi động lại hệ thống. Gọi Restart-Computer thông qua PowerShell chắc chắn sẽ gây ra một khởi động lại ngay lập tức. Tôi cũng thấy rằng nếu bạn gọi Restart-Computer hoặc một trong những phương pháp khác để buộc khởi động lại và waitAfterCompletion của bạn không đủ dài để cho nó thời gian khởi động lại hoàn toàn, việc triển khai sẽ thất bại. – jstill