Здесь важно понять, зачем на самом деле использовать CloudFormation для развертывания вашего приложения, если вы можете инициализировать, а затем загружать новые версии своего приложения через консоль EB (как вы заявляете, что делали) или через API EB.CloudFormation - это своего рода «рецепт» для вашего приложения, и он предназначен для поддержания определения инфраструктуры под контролем исходного кода .Это причина, по которой вы наблюдали откат при обновлении только части переменных среды в вашем «рецепте» - изменения, внесенные в CloudFormation, вызвали обновление в приложении и были применены определения из шаблона - где старая версия приложения была сложной-coded.Вот почему в идеале ваш шаблон CloudFormation должен быть параметризован - каждый раз, когда вы хотите сделать обновление в своем приложении, вы должны передать шаблону имя самой новой версии.
Конечно, вы можетевручную обновите версию EB в своей консоли, но в этом случае сама идея использования CloudFormation становится бессмысленной и приведет к осложнениям, которые вы наблюдаете.
Как вы указали в комментарии, вы можете загружать новое приложениеверсии до S3 и затем обновление CloudFormation через API, передавая версию в качестве параметра.Таким образом, обновления могут быть автоматизированы.Пример вызова API для выполнения некоторых обновлений в стеке (объяснение в документах AWS ):
aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template
--parameters ParameterKey=VPCID,ParameterValue=SampleVPCID ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,UpdatedSampleSubnetID2
В вашем случае параметр для обновления будет AWS :: ElasticBeanstalk:: ApplicationVersion и особенно SourceBundle .
СТАРЫЙ ОТВЕТ (обновление приложения в консоли EB, не затрагивая CloudFormation)
Я понимаю, что вы не развертываете приложение с помощью шаблона Cloud Formation (поскольку оно не обновлялось в течение года), поэтому вы должны делать это программно с помощью eb deploy
или в Elastic Beanstalk Console.Тогда почему бы не обновить переменные среды в консоли?
Вы можете сделать это, перейдя в консоль приложения, нажав «Конфигурация» в меню слева, а затем кнопку «Изменить» вРаздел «Программное обеспечение».Внизу вы можете добавить переменные среды, которые будут существовать в вашем приложении после каждого нового развертывания.