【问题标题】:AWS CodeDeploy deployment failed at event BlockTrafficAWS CodeDeploy 部署在 BlockTraffic 事件中失败
【发布时间】:2019-04-15 13:23:40
【问题描述】:

我正在尝试使用 ELB 后面的 EC2 设置从 GitHub 到 AWS 的自动部署。

在关注Tutorial: Use AWS CodeDeploy to Deploy an Application from GitHub 之后,我的部署在 BlockTraffic 事件中失败,在尝试了一个小时(上次 1 小时 2 分钟)后,错误代码为 ScriptFailed。我不确定如何解决问题/在哪里查看。

ELB目标组目标健康状态:healthy

健康检查配置:

Healthy threshold: 2 Unhealthy threshold: 2 Timeout: 5 Interval: 10 Success codes: 200

【问题讨论】:

  • 您找到解决此问题的方法了吗?我也有同样的问题。
  • @DynamicScope 是的。我不记得它到底是什么,但我想我错过了一个 AppSpec 文件或 ApplicationStart.sh。我必须了解 systemd 和守护进程

标签: amazon-web-services amazon-ec2


【解决方案1】:

不要在管道的代码部署部署组上启用负载均衡器,您将摆脱 BlockTraffic 和 AllowTraffic 步骤。

Screenshot

【讨论】:

  • 请进一步解释您的答案如何解决问题
  • 只要禁用负载均衡器,BlockTraffic 步骤就会被移除,问题就解决了。
  • 这对我有用。谢谢!
【解决方案2】:

我遇到了同样的问题,我意识到在部署组中, 我没有标记目标组的实例 id,我在其上进行健康检查以查找目标组是否健康。因此部署组知道目标组,它必须处理流量。

【讨论】:

    【解决方案3】:

    有一个 AWSCodeDeployRole 策略,可以很容易地涵盖使用 codedeploy 所需的权限

    【讨论】:

    • 这是答案还是评论
    【解决方案4】:

    确保您的 Code Deploy 角色具有足够的访问权限来注册和取消注册实例(如果它位于 ELB 之后)。

    可能需要以下权限。

    "elasticloadbalancing:DescribeLoadBalancers",
    "elasticloadbalancing:DescribeInstanceHealth",
    "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
    "elasticloadbalancing:DeregisterInstancesFromLoadBalancer",
    "elasticloadbalancing:DescribeTargetGroups",
    "elasticloadbalancing:DescribeTargetHealth",
    "elasticloadbalancing:RegisterTargets",
    "elasticloadbalancing:DeregisterTargets"
    

    【讨论】:

      猜你喜欢
      • 2021-02-10
      • 1970-01-01
      • 1970-01-01
      • 2019-12-15
      • 1970-01-01
      • 2017-05-26
      • 2018-12-05
      • 2018-12-30
      • 1970-01-01
      相关资源
      最近更新 更多