使用SourceConfiguration时,Elastic Beanstalk环境丢失了

时间:2019-06-08 09:28:51

标签: amazon-web-services amazon-elastic-beanstalk aws-codestar

我已经在AWS上使用Codestar创建了一个新的WebApplication,并且通常运行良好。我现在遇到的最大问题是,我在Beanstalk的软件配置中设置的环境变量在部署之间不会持久存在。

我很快发现我可以在SourceConfiguration内使用template.yml来实现这一目标,所以这就是我所做的:

  1. 部署了我的应用
  2. 准备好后,我就在软件配置中定义了所有变量,并等待应用重新部署
  3. 转到Actions-> Save Configuration,并成功保存了所有内容
  4. 在我的template.yml中,输入新配置的名称,然后再次部署该应用程序

上面的过程是我第一次做的。

但是,当我对配置进行更改时,再次将其保存为 一个新名称,并使用 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

2 个答案:

答案 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'