Переменная Env в разделе "файлы:".ebextensions

Я определил переменную среды MY_ENVIRONMENT_VARIABLE на вкладке Конфигурация программного обеспечения AWS Elastic Beanstalk.

Теперь я хотел бы использовать эту переменную среды в разделе "files:" файла конфигурации.ebextensions.

Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: S3
          buckets: arn:aws:s3:::SomeS3Bucket
          roleName: aws-elasticbeanstalk-ec2-role

files:
  "/tmp/application.properties" :
    mode: "000644"
    owner: root
    group: root
    source: { "Ref" : "MY_ENVIRONMENT_VARIABLE" }
    authentication: S3Auth

container_commands:
  01-apply-configuration:
    command: mv /tmp/application.properties .

Кажется возможным ссылаться на переменные окружения в разделе "container_commands:" (с помощью сценариев bash), но я не смог найти никаких ссылок, которые возможны внутри раздела "files:".

У кого-нибудь есть пример того, как использовать переменные окружения внутри раздела "files:"?

1 ответ

Используйте Fn::GetOptionSetting для получения переменных среды. Переменные среды находятся в aws:elasticbeanstalk:application:environment Пространство имен

files:
  "/tmp/application.properties" :
    mode: "000644"
    owner: root
    group: root
    source: '`{"Fn::GetOptionSetting": {"Namespace": "aws:elasticbeanstalk:application:environment", "OptionName": "MY_ENVIRONMENT_VARIABLE", "DefaultValue": "file_path"}}`'
    authentication: S3Auth

Обратите внимание backtick которые выполняют подстановку команд. DefaultValue Атрибут необязательный, который используется, если переменная окружения не найдена.

Над конфигурационным файлом создаст файл /tmp/application.properties с содержимым из файла, указанного в переменной среды MY_ENVIRONMENT_VARIABLE,

Другие вопросы по тегам