AWS Beanstalk-在部署时,是否从S3存储桶中复制带有环境变量的文件?

问题描述 投票:0回答:1

[当我部署新版本时,我试图将文件从S3存储桶复制到Beanstalk上的NodeJS应用程序。

到目前为止我所做的:

  1. 创建了一个S3存储桶并上传了文件。
  2. 创建了允许Beanstalk实例(aws-beanstalk-ec2-role)读取存储桶文件的IAM策略。
  3. 设置存储桶策略以允许aws-beanstalk-ec2-role访问文件。
  4. 使用以下命令在我的应用程序中.ebextensions / app.config中创建了一个配置文件:
  Resources:
    AWSEBAutoScalingGroup:
        Metadata:
            AWS::CloudFormation::Authentication:
                S3Auth:
                    type: "s3"
                    buckets: ["bucket-name"]
                    roleName: aws-elasticbeanstalk-ec2-role

  files:
    "/tmp/deployment/application/file_needed.json" :
      mode: "000644"
      owner: root
      group: root
      authentication: "S3Auth"
      source: https://[bucket-name].s3.[region].amazonaws.com/origin_file.json

应用程序部署没有错误,但是文件file_needed.json没有被复制?

更新:尝试使用其他文件夹目标(/ tmp)后,我发现文件已复制。我所知道的是,Beanstalk首先将文件提取到/ tmp / deployment / application /,然后将其移动到/ var / app / current。如何获取文件以复制到应用程序的根目录?

node.js amazon-web-services amazon-s3 amazon-elastic-beanstalk
1个回答
0
投票

原因可能是区分大小写的问题。在AWS :: CloudFormation :: Authentication中,类型设置为“ s3”,而不是“ S3”。

也尝试从存储桶URL中删除“区域”:

source: https://bucket-name.s3.amazonaws.com/origin_file.json
© www.soinside.com 2019 - 2024. All rights reserved.