amazon-web-services - Elastic Beanstalk、不可变部署和 CloudFormation 的问题

标签 amazon-web-services deployment amazon-elastic-beanstalk aws-cloudformation

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

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

我们使用 CloudFormation 来处理所有事情。例如,我们没有使用 UI(AWS 管理控制台)启用不可变部署,而是将相应的 OptionSettings 添加到配置模板中的 ConfigurationTemplate 中。

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

Failed to deploy application.

Cannot update resource configuration and instance configuration simultaneously with immutable deployments. Choose a different deployment policy and redeploy to make this change.

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

- Namespace: 'aws:autoscaling:asg'
  OptionName: MinSize
  Value: 6
- Namespace: 'aws:autoscaling:asg'
  OptionName: MaxSize
  Value: 6

如果有人能够向我们提示我们可以在 CloudFormation 模板中更改哪些选项而不导致部署失败,我们将非常感谢。非常感谢!

最佳答案

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

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

还要确保您将 aws:autoscaling:updatepolicy:rollingupdate RollingUpdateEnabled 设置为 true,并将 aws:elasticbeanstalk:healthreporting:system SystemType 设置为“enhanced”,并在您的应用程序中配置 aws:elasticbeanstalk:application 应用程序运行状况检查 URL,以使其能够健康检查,否则它将失败并出现另一条误导性消息。

关于amazon-web-services - Elastic Beanstalk、不可变部署和 CloudFormation 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48204219/

相关文章:

node.js - 密码保护 AWS Node EB 应用程序

c++ - 使用 Python 或其他嵌入式脚本语言部署应用程序

python - 如何部署Python模块扩展

python - AWS 与 Django

ssl - Elastic Beanstalk 添加多个 ssl 证书

performance - 在效率方面,GetItem/BatchGetItem 与查询和扫描 DynamoDB 表相比如何?

amazon-web-services - ELB 和 EC2 之间发生 408 请求超时错误

sql - AWS MS SQL 创建表

deployment - 如何检查我的 UML 部署图是否符合 UML?

java - 减少 Java 堆大小