6

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?

Trả lời

5

Chúng tôi đã gặp sự cố tương tự. Chúng tôi cần tắt SSL và TLS < 1.2, yêu cầu thay đổi đăng ký và khởi động lại. Cách giải quyết của chúng tôi là thực hiện khởi động lại trong phần container_commands với sự chờ đợi mãi mãi. Điều này dường như khởi động lại đúng cách và sau đó kích hoạt thành công trong việc triển khai. Tuy nhiên, nó không bao giờ thực sự thực hiện bất kỳ bước nào sau khi khởi động lại, bao gồm việc triển khai mã được xây dựng từ vị trí dàn đến đích cuối cùng của tệp (inetpub/wwwroot). Để giải quyết vấn đề này, hãy thực hiện một bước ngay trước khi khởi động lại để sao chép các tệp từ thư mục dàn dựng cục bộ vào chính gốc web.

+0

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." –

+0

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

Các vấn đề liên quan