AWS / EB上不可变部署的限制

时间:2018-01-05 09:19:38

标签: amazon-web-services elastic-beanstalk amazon-cloudformation

我试图了解AWS / Elastic Beanstalk上不可变部署的缺点。文档说这个:

  

您无法与资源配置更改一起执行不可变更新。例如,您无法更改需要更换实例的设置,同时还可以更新其他设置,或使用可更改源代码中的配置设置或其他资源的配置文件执行不可变部署。如果您尝试更改资源设置(例如,负载平衡器设置)并同时执行不可变更新,则Elastic Beanstalk会返回错误。

(资料来源:https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/environmentmgmt-updates-immutable.html

但是,我无法想出一个失败的实际场景。我使用CloudFormation模板进行所有配置。以上是否可以解释为我无法同时部署CloudFormation更改以及对应用程序(.jar)的更改?

我非常感谢你澄清。

1 个答案:

答案 0 :(得分:1)

带上一粒盐,因为它只是在阅读文档的基础上猜测;我认为基本支持是每月40美元,这是一个很好的问题,要求他们肯定知道。

  

以上内容可以解释为我无法同时部署CloudFormation更改以及对应用程序(.jar)的更改

我假设您使用与CloudFormation模板不同的进程部署应用程序.jar。在部署源代码时意味着您不使用CloudFormation,您可以使用CI / CD工具,例如Codeship。当您对CloudFormation模板进行更改时,您将登录AWS控制台并在那里更新模板(或使用AWS CLI工具)。

我认为,同时更改两者将属于他们在此处所说的内容。不要出于显而易见的原因这样做;你不希望CloudFormation尝试在EB关闭该实例并开始新实例的同时对ec2实例进行更改。但是,如果您碰巧使用.ebextensions进行某些配置设置,我会想到一个更常见的例子。

.ebextensions是一种在EB中配置CloudFormation可以做或不易做的事情的方法。它们是使用源代码部署在项目根目录中名为/.ebextensions的文件夹中的配置文件。一个例子是更改某些特定的Linux设置https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/customize-containers-ec2.html

您不希望同时更改应用程序代码和.ebextension。这只是我对阅读文档的猜测,你可以很容易地测试它。