我正在使用AWS CodeDeploy部署站点,但我注意到它的速度并不一致。有时速度相当快,但有时部署的每个步骤可能需要几分钟。当应该快速执行部署时(如果存在错误或中断),这很烦人。
但是,我找不到有关CodeDeploy速度的任何文档,而且似乎也找不到关于慢速或快速的逻辑。有什么方法可以加快速度,有什么方法可以知道花费了这么长时间吗?
我正在使用AWS CodeDeploy部署站点,但我注意到它的速度并不一致。有时速度相当快,但有时部署的每个步骤可能需要几分钟。当应该快速执行部署时(如果存在错误或中断),这很烦人。
但是,我找不到有关CodeDeploy速度的任何文档,而且似乎也找不到关于慢速或快速的逻辑。有什么方法可以加快速度,有什么方法可以知道花费了这么长时间吗?
Answers:
CodeDeploy确实很少在默认情况下-它抓住从S3或Github上的代码,然后运行你的每个脚本appspec.yml
文件的指示。
如果您的部署正在从S3中获取千兆字节的数据,您会发现这需要花费一些时间进行数据传输(尤其是在带宽有限的小型EC2实例上),但除此之外,部署延迟很可能是由于您的原因在您的部署脚本中执行。
CodeDeploy部署中的步骤为:
粗体部分取决于CodeDeploy,其他部分取决于您。如果您看到粗体显示的延迟有所不同,请联系AWS支持,但是否则您可能需要研究一下钩子。
只需调整目标群体的健康检查设置即可节省几分钟。
之所以有效BlockTraffic
,AllowTraffic
是因为它们都等待成功的健康检查。默认的健康检查间隔是每30秒检查1次,成功的健康检查需要连续5次连续200次响应。因此,默认情况下,它花费的时间超过2分30秒。这适用于每个EC2实例。减少运行状况检查间隔并限制所需的成功检查次数将缩短部署时间。
Script at specified location: ... failed to complete in 5 seconds
。(在appspec.yml-> hooks:-> BeforeInstall中设置):(请告诉我原因)