【问题标题】:AWS CodeDeploy stuck in AllowTraffic stepAWS CodeDeploy 卡在 AllowTraffic 步骤
【发布时间】:2019-07-22 23:54:56
【问题描述】:

我正在使用 AWS CodeDeploy 将我的项目(由 CodePipeline 触发)部署到自动扩展组(ALB 后面的 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 文件没有什么花哨的(并且 codedeploy 通过了这些步骤,所以我认为这不是问题)。

谁能给我指个方向?我没有收到任何错误消息,所以我什至不知道如何调试它。

谢谢

【问题讨论】:

    标签: amazon-web-services aws-code-deploy


    【解决方案1】:

    我也有同样的问题,经过调查,我发现我的目标群体“不健康”。我只是添加了健康检查路径/文件,即“/rorbots.txt”并重新启动了 Ec2 服务器并解决了问题。

    【讨论】:

    • 非常感谢您的评论 - 我们有一个没有基本 URL 的无头 API,因此它卡在允许流量上,因为点击 ELB 默认“/”端点没有返回 200 :)跨度>
    【解决方案2】:

    我们还有一个不健康的目标实例。问题是在同一个实例上托管两个应用程序,其中一个(应用程序 A)负责运行状况检查并与负载均衡器通信,而另一个(应用程序 B 没有任何开放的网络端口)正在部署中。在应用程序 B 部署期间,一个实例总是卡在 AllowTraffic 中。当我查看应用程序 A 的目标组并看到同一个实例处于“不健康”状态时,我找到了根本原因,因此部署应用程序 B 当然不能解决这个问题。在我重新部署应用 A 并将实例恢复到健康状态后,应用 B 的部署能够继续进行。

    【讨论】:

      【解决方案3】:

      检查您在目标组实例上的日志。可能是以下原因之一:

      • 应用程序启动命令未成功完成
      • 应用程序因错误而未运行
      • 您的目标组的健康检查未配置您期望的端点
      • 您的应用程序没有在您期望的端点响应

      【讨论】:

        猜你喜欢
        • 2019-12-15
        • 1970-01-01
        • 2020-01-29
        • 2019-01-15
        • 1970-01-01
        • 2014-04-11
        • 1970-01-01
        • 2019-08-27
        • 2020-07-23
        相关资源
        最近更新 更多