我在 AWS 上使用 Codestar 创建了一个新的 WebApplication,它通常运行良好。我现在遇到的一个大问题是,我在 Beanstalk 的软件配置中设置的环境变量在部署之间不会持续存在。
我很快发现我可以使用SourceConfiguration
insidetemplate.yml
来实现这一点,所以这就是我所做的:
- 部署了我的应用
- 准备就绪后,我在软件配置中定义了所有变量并等待应用重新部署
- 转到
Actions
->Save Configuration
,并成功保存了所有内容 - 在我的 template.yml 中,我输入了新配置的名称并再次部署了应用程序
上面的过程在我第一次做的时候就奏效了。
但是,当我对配置进行更改时,以新名称再次保存它们,并使用新的SourceConfiguration 重新部署应用程序,它不使用我创建的最新配置并返回到前一个配置。
如果我在部署后手动加载保存的配置,它会成功恢复我设置的环境。
我错过了一些非常明显的东西吗?
这是我编辑过的 template.yml,以防我做错了什么。
AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::CodeStar
Resources:
EBConfigurationTemplate:
Description: The AWS Elastic Beanstalk configuration template to be created for this project, which defines configuration settings used to deploy different versions of an application.
Type: AWS::ElasticBeanstalk::ConfigurationTemplate
Properties:
ApplicationName: !Ref 'EBApplication'
Description: The name of the sample configuration template.
OptionSettings:
- Namespace: aws:elasticbeanstalk:environment
OptionName: EnvironmentType
Value: LoadBalanced
- Namespace: aws:elasticbeanstalk:environment
OptionName: ServiceRole
Value: !Ref 'EBTrustRole'
- Namespace: aws:elasticbeanstalk:healthreporting:system
OptionName: SystemType
Value: enhanced
SolutionStackName: !Ref 'SolutionStackName'
SourceConfiguration:
ApplicationName: !Ref 'EBApplication'
TemplateName: "my-saved-vars" <---- This is where i define my old configuration