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中引用的文件的內容。