AWS CodeDeploy在Windows Server 2016上的ApplicationStop之前挂起

问题描述 投票:0回答:1

我有点受不了这个。我试图在Windows Server EC2实例上使用Code Deploy时没有运气,它在应用程序停止之前一直卡住,并且所有阶段都处于挂起状态,直到失败为止,然后全部跳过。

到目前为止我检查过的内容:

  1. 我已经在服务器上安装了代码部署代理,并确保它正在运行
  2. 我已经检查并仔细检查了EC2实例的入站和出站权限(允许所有HTTP / HTTPS请求)
  3. 我已经检查了代码部署应用程序本身的IAM角色(我已经赋予了我可以想到的所有权限)
  4. 我检查了appspec.yml(它只需要将构建文件从构建阶段转移到EC2本身的文件夹中
version: 0.0
os: windows
files:
  - source: \path
    destination: \path
hooks:
    BeforeInstall:
    AfterInstall:
    ApplicationStart:

我不知道为什么会发生这种情况(我已经在Linux实例上部署了这个问题,代理总是开始读取appspec.yml)

任何帮助将不胜感激。谢谢!

amazon-web-services windows-server-2016 aws-code-deploy
1个回答
0
投票

根据设计,ApplicationStop总是从上一次成功部署的存档中执行,因为那是您启动应用程序的时间。这样,CodeDeploy确保用于启动和停止应用程序的脚本属于同一修订版[1]。我们没有完整的数据,但可能是上次部署的ApplicationStop脚本引起了问题。

根据[1]:

如果失败的原因是最后一次成功的脚本永远无法成功运行的部署,创建部署并指定ApplicationStop,BeforeBlockTraffic和AfterBlockTraffic故障应忽略。有两种方法这个:

  • 使用CodeDeploy控制台创建部署。关于创造部署页面,在ApplicationStop生命周期事件失败下,选择如果此生命周期事件持续发生,请不要使对实例的部署失败实例失败。

  • 使用AWS CLI调用create-deployment命令并包括--ignore-application-stop-failures选项。

[1] https://docs.aws.amazon.com/codedeploy/latest/userguide/troubleshooting-deployments.html#troubleshooting-deployments-lifecycle-event-failures

© www.soinside.com 2019 - 2024. All rights reserved.