Elastic Beanstalk、不可变部署和 CloudFormation 的问题

Dwi*_*ute 6 deployment amazon-web-services aws-cloudformation amazon-elastic-beanstalk

我们最近才开始在 Elastic Beanstalk 中使用不可变部署。更具体地说,我们启用了

  • 不可变的应用程序部署和
  • 不可变的配置更新。

我们将 CloudFormation 用于一切。例如,我们没有使用 UI(AWS 管理控制台)启用不可变部署,而是在我们的配置模板中添加了相应OptionSettingsConfigurationTemplate

但是,我们在使用这种方法时遇到了一些问题。每当我们更改 中的某些属性时ConfigurationTemplate,我们都会收到以下错误消息:

部署应用程序失败。

无法与不可变部署同时更新资源配置和实例配置。选择不同的部署策略并重新部署以进行此更改。

在深入搜索文档后,我们无法确切地找出我们可以对不可变部署进行哪些更改,以及导致上述错误的原因。当我们尝试操作以下OptionSettings属性时出现错误:

- Namespace: 'aws:autoscaling:asg'
  OptionName: MinSize
  Value: 6
- Namespace: 'aws:autoscaling:asg'
  OptionName: MaxSize
  Value: 6
Run Code Online (Sandbox Code Playgroud)

我们将非常感谢任何能就我们可能在 CloudFormation 模板中更改哪些选项而不会导致部署失败的人向我们提供提示。非常感谢!

小智 6

您需要将您的 aws:elasticbeanstalk:command DeploymentPolicy 设置为“Rolling”或其他内容并推动它。然后,一旦将其设置为默认值和不可变值以外的其他值,您就可以将其更改回不可变的。

该消息意味着您不能同时将它们更改为打开,但不是它们不能一起使用。

还要确保您将 aws:autoscaling:updatepolicy:rollingupdate RollingUpdateEnabled 设置为 true 加上 aws:elasticbeanstalk:healthreporting:system SystemType 设置为“enhanced”并在您的应用程序中配置一个 aws:elasticbeanstalk:application Application Healthcheck URL 以便它进行健康检查,否则它将失败并显示另一个误导性消息。