使用python应用程序使用CodedeDeploy验证服务挂钩



我在AWS上托管了一个重型应用程序。我使用Codedeploy&代码管道(从GitHub更新)在准备好新版本时更新服务器(当前在生产环境上运行6个EC2实例)。

我已经设置了codedeploy以一对一操作,还定义了在负载平衡器上耗尽300秒的连接。

仍然,我的应用程序很重(它从磁盘上加载了大型词典泡菜文件到内存),发射的过程大约需要约60秒。在这60秒内,编码eploy标记了已完成的实例的部署过程,从而使其作为健康实例加入到负载平衡器中 - 这可能会导致试图到达应用程序的用户错误。

我考虑使用ValidateService钩子,但我不确定如何在我的情况下。

在继续下一个实例之前,如何等待如何等待应用程序的全部负载和准备就绪?

这是我当前的appspec.yml version: 0.0 os: linux files: - source: /deployment destination: /deployment - source: /webserver/src destination: /vagrant/webserver/src permissions: - object: /deployment pattern: "**" owner: root mode: 644 type: - directory - object: /webserver/src owner: root mode: 644 except: [/webserver/src/dictionaries] type: - directory hooks: ApplicationStop: - location: /deployment/aws_application_stop.sh BeforeInstall: - location: /deployment/aws_before_install.sh AfterInstall: - location: /deployment/aws_after_install.sh ApplicationStart: - location: /deployment/aws_application_start.sh

我会在ValidateService钩中循环,检查您期望的条件,>或仅睡60秒,假设这是正常的初始化时间。p> ValidateService钩子应该做到这一点:确保服务在继续/最终确定部署之前已完全运行。当然,这取决于您的应用。但是考虑一个循环,该循环拉动了一个专门设计的页面,例如http://localhost/service-ready。在该URL中,测试并确认适合您服务的所有内容。如果尚未验证该服务,请返回-Pending-字符串。一切都100%

返回-OK-

也许在10秒睡眠中循环10-20次,然后在返回-OK-时退出,然后如果服务永不验证,则丢弃错误。

相关内容

  • 没有找到相关文章

最新更新