0
votes

I have a Cloudformation template with the following Elastic Beanstalk environment:

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'

My main goal is to update the environment's Python version from 3.4 to 3.6. I was able to update the solution stack name with the following command (taken from this answer)

aws elasticbeanstalk update-environment --solution-stack-name "64bit Amazon Linux 2018.03 v2.7.6 running Python 3.6" --environment-name "Environment1"

However, I cannot do subsequent updates using the existing template if I update it to the new solution stack name, because I get "Cannot update a stack when a custom-named resource requires replacing". It works if I keep the original one, but I would like to keep the running platform in sync with the template.

Any ideas?

Thanks!

1

1 Answers

0
votes

I get the same problem. This appears to be a limitation of Elastic Beanstalk and CloudFormation. In the docs (https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html) an update to SolutionStackName shows as Update requires: Replacement.

If you just change the EnvironmentName every time you change SolutionStackName it should work fine.