我有一个Cloudformation模板,具有以下Elastic Beanstalk环境:
Resources:
BeanstalkEnvironment1:
Type: AWS::ElasticBeanstalk::Environment
Properties:
ApplicationName: Application1
Description: ignored
EnvironmentName: Environment1'
SolutionStackName: '64bit Amazon Linux 2017.03 v2.5.0 running Python 3.4'
我的主要目标是将环境的Python版本从3.4更新到3.6。我能够使用以下命令(取自this answer)更新解决方案堆栈名称
aws elasticbeanstalk update-environment --solution-stack-name "64bit Amazon Linux 2018.03 v2.7.6 running Python 3.6" --environment-name "Environment1"
但是,如果我将其更新为新的解决方案堆栈名称,则无法使用现有模板进行后续更新,因为会得到“ Cannot update a stack when a custom-named resource requires replacing”。如果保留原始版本,它可以工作,但是我想使运行中的平台与模板保持同步。
有什么想法吗?
谢谢!
答案 0 :(得分:0)
我遇到同样的问题。这似乎是Elastic Beanstalk和CloudFormation的限制。在文档(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html中,对SolutionStackName
的更新显示为Update requires: Replacement
。
如果您每次更改EnvironmentName
时都只更改SolutionStackName
,那么它应该可以正常工作。