我已经在AWS上使用Codestar创建了一个新的WebApplication,并且通常运行良好。我现在遇到的最大问题是,我在Beanstalk的软件配置中设置的环境变量在部署之间不会持久存在。
我很快发现我可以在SourceConfiguration
内使用template.yml
来实现这一目标,所以这就是我所做的:
Actions
-> Save Configuration
,并成功保存了所有内容上面的过程是我第一次做的。
但是,当我对配置进行更改时,再次将其保存为 一个新名称,并使用 new 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
答案 0 :(得分:0)
在部署应用程序时,可以在源代码管理中使用.ebextension文件来指定配置选项。
https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html
答案 1 :(得分:0)
原来,我在这方面完全错了。
应该在管道配置和template.yml
中设置环境,而不是beantalk本身。
已删除示例:
AWSTemplateFormatVersion: 2010-09-09
Transform:
- AWS::CodeStar
Parameters:
ApiPublicKey:
Type: String
Description: API Token
ApiUrl:
Type: String
Description: API Url
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:application:environment
OptionName: API_PUBLIC_KEY
Value: !Ref 'ApiPublicKey'
- Namespace: aws:elasticbeanstalk:application:environment
OptionName: API_URL
Value: !Ref 'ApiUrl'