我有点受不了这个。我试图在Windows Server EC2实例上使用Code Deploy时没有运气,它在应用程序停止之前一直卡住,并且所有阶段都处于挂起状态,直到失败为止,然后全部跳过。
到目前为止我检查过的内容:
version: 0.0
os: windows
files:
- source: \path
destination: \path
hooks:
BeforeInstall:
AfterInstall:
ApplicationStart:
我不知道为什么会发生这种情况(我已经在Linux实例上部署了这个问题,代理总是开始读取appspec.yml)
任何帮助将不胜感激。谢谢!
根据设计,ApplicationStop总是从上一次成功部署的存档中执行,因为那是您启动应用程序的时间。这样,CodeDeploy确保用于启动和停止应用程序的脚本属于同一修订版[1]。我们没有完整的数据,但可能是上次部署的ApplicationStop脚本引起了问题。
根据[1]:
如果失败的原因是最后一次成功的脚本永远无法成功运行的部署,创建部署并指定ApplicationStop,BeforeBlockTraffic和AfterBlockTraffic故障应忽略。有两种方法这个:
使用CodeDeploy控制台创建部署。关于创造部署页面,在ApplicationStop生命周期事件失败下,选择如果此生命周期事件持续发生,请不要使对实例的部署失败实例失败。
使用AWS CLI调用create-deployment命令并包括--ignore-application-stop-failures选项。