Среда Elastic Beanstalk теряется при использовании SourceConfiguration - PullRequest
1 голос
/ 08 июня 2019

Я создал новое веб-приложение с использованием Codestar на AWS, и в целом оно работает довольно хорошо.Большая проблема, с которой я столкнулся сейчас, заключается в том, что переменные среды, которые я устанавливаю в конфигурации программного обеспечения Beanstalk, не сохраняются между развертываниями.

Я очень быстро обнаружил, что могу использовать SourceConfiguration внутри template.yml для достижения этой цели, поэтому вот что я сделал:

  1. Развернуло мое приложение
  2. Когда все было готово, я определил все свои переменные в конфигурации программного обеспечения и подождал, пока приложение повторно развернуло
  3. Перешел на Actions -> Save Configuration, и успешно все сохранил
  4. В моем шаблоне.yml, я ввел имя новой конфигурации и снова развернул приложение

Процесс, описанный выше, сработал в первый раз, когда я это сделал.

Однако, когда я изменяю конфигурацию, сохраните их снова под новым именем и заново разверните приложение с new SourceConfiguration, которое не используетпоследняя созданная мной конфигурация и возвращающаяся к предыдущей .

Если я вручную загружаю сохраненную конфигурацию после развертывания, она успешно восстанавливает заданную мной среду.

AmЯ упустил что-то очень очевидное?

Вот мой отредактированный 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 голосов
/ 19 июня 2019

Оказывается, я был совершенно не прав во всем этом.

Среда должна быть настроена в конфигурации конвейера и template.yml, а не сама бобовая стебель.

Отредактированный пример:

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'
0 голосов
/ 12 июня 2019

Вы можете использовать файлы .ebextension в вашем контроле исходного кода, чтобы указать параметры конфигурации при развертывании приложения.

https://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html

...