【问题标题】:AWS Codedeploy when Autoscaling Group set to 0 instances自动缩放组设置为 0 个实例时的 AWS Codedeploy
【发布时间】:2016-07-20 14:52:36
【问题描述】:

我正在使用 Codedeploy 推送到 Auto Scaling 组中的我的 ec2 实例。有时,该 Auto Scaling 组没有任何现有实例正在运行。当我在这种情况下部署时,codedeploy 总是失败,即使我已将最小健康主机设置为 0 个实例。

当有 0 个实例时,我是否可以让代码部署说“成功”?

它出现在 codedeploy 失败时,它不会更新修订版。这对我来说真的很痛苦。

【问题讨论】:

  • 在触发代码部署作业之前将实例数增加到 1 的任何解决方法?

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


【解决方案1】:

您需要在部署组中至少有一个实例才能成功部署。将 Autoscaling 组(至少包含 1 个实例)与 CodeDeploy 挂钩后,您应该成功部署以更新部署组的目标修订。在此之后,任何新的实例扩展都应该自动选择目标版本。

您还可以将自动缩放组的 :min 属性设置为 1 以始终在其中保留一个实例。

【讨论】:

  • 感谢您提供此信息!您是否知道任何有关“仅在 ASG 内至少有一次成功的显式 CodeDeploy 后才完成自动 CodeDeploy”行为的文档?
【解决方案2】:

我知道已经过去两年多了,但我也遇到了同样的问题。我的解决方法是为我的 Auto Scaling 组创建我自己的生命周期挂钩,并为部署我的修订版创建一个 SNS + Lambda。

问题是,您应该首先为应用程序注册一个修订版,而不是部署它。 Auto Scaling 组创建新实例后,挂钩将向 Lambda 发送 SNS 消息,然后您可以(基于收到的消息 + 环境变量)查找修订(已创建)并将它们部署到新实例实例。

我已使用 CloudFormation 将所有这些链接在一起 - 我极力推荐用于此解决方法和所有其他 AWS 相关服务。

【讨论】:

    猜你喜欢
    • 2018-03-18
    • 2019-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-29
    • 2012-06-19
    • 2020-03-30
    相关资源
    最近更新 更多