我正在使用AWS CodeDeploy将我的项目(由Codepipeline触发)部署到自动级别(ABS后面的EC2实例)。这是我的appspec文件:
version: 0.0
os: linux
files:
- source: /
destination: /var/www/html/test-deploy
overwrite: true
permissions:
- object: /var/www/html/test-deploy/codedeploy
pattern: "*.sh"
owner: root
group: root
mode: 755
type:
- file
hooks:
BeforeInstall:
- location: codedeploy/before_install.sh
timeout: 180
AfterInstall:
- location: codedeploy/after_install.sh
runas: centos
timeout: 180
文件已成功部署到EC2实例,但是由于某些原因," beforeallowtraffic"没有任何发生的事情,就像我等待15分钟一样,下一步仍在"待定"中。
两个.sh文件什么也没什么好玩的(编码器通过了这些步骤,所以我认为这不是问题)。
有人可以将我指向方向吗?我没有任何错误消息,所以我什至不知道如何调试。
谢谢
我也遇到了同样的问题,在调查后,我发现我的目标群体"不健康"。我只添加健康检查路径/文件即"/rorbots.txt",然后重新启动EC2服务器及其解决问题。
我们也有一个不健康的目标实例。该问题是在同一实例上托管了两个应用程序,其中一个(应用程序A)负责健康检查并与负载平衡器进行交谈,另一个(没有任何开放网络端口的应用程序B)正在部署。在应用B部署期间,一个实例总是陷入AllowTraffic
。当我查看App A的目标组时,我发现了根本原因,并在"不健康"中看到了同一实例。状态,因此部署应用B不会解决这个问题。在我重新部署应用程序并将实例恢复到健康之后,应用B部署能够进步。
检查目标组实例上的日志。它可能是由以下一个引起的:
- 应用程序启动命令未成功完成
- 由于错误而无法运行该应用程序
- 您的目标组的健康检查未与您期望的端点配置
- 您的申请在您期望的端点没有响应