更新AWS Elastic Beanstalk解决方案堆栈名称

时间:2018-11-29 13:23:56

标签: python python-3.x amazon-web-services amazon-cloudformation amazon-elastic-beanstalk

我有一个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”。如果保留原始版本,它可以工作,但是我想使运行中的平台与模板保持同步。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:0)

我遇到同样的问题。这似乎是Elastic Beanstalk和CloudFormation的限制。在文档(https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-beanstalk-environment.html中,对SolutionStackName的更新显示为Update requires: Replacement

如果您每次更改EnvironmentName时都只更改SolutionStackName,那么它应该可以正常工作。