Переменная 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
,