3

我在AWS Elastic Beanstalk的软件配置选项卡中定义了名为MY_ENVIRONMENT_VARIABLE的环境变量。现在.ebextensions中的Env变量“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脚本)部分,但我找不到任何引用,这是可能的“文件:”内部部分。

有谁知道如何使用内部环境变量的例子:部分“文件”?

回答

0

使用Fn::GetOptionSetting中检索环境变量。环境变量是在aws:elasticbeanstalk:application:environmentnamespace

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 

注执行所命令替换的backtickDefaultValue属性是可选的,这是在情况下环境变量中使用是找不到的。

上面的配置文件将创建文件/tmp/application.properties与来自环境变量MY_ENVIRONMENT_VARIABLE中引用的文件的内容。