Soo*_*oth 5 amazon-s3 ruby ruby-on-rails amazon-ec2 amazon-web-services
应如何使用亚马逊 Web 服务及其弹性 beanstalk 将秘密文件推送到 EC2 Ruby on Rails 应用程序?
我将文件添加到 git 存储库,然后推送到 github,但我想将秘密文件保留在 git 存储库之外。我正在使用以下方式部署到 aws:
git aws.push
Run Code Online (Sandbox Code Playgroud)
以下文件位于 .gitignore 中:
/config/database.yml
/config/initializers/omniauth.rb
/config/initializers/secret_token.rb
Run Code Online (Sandbox Code Playgroud)
通过此链接,我尝试将 S3 文件添加到我的部署中: http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/customize-containers.html
引用该链接:
示例片段
以下示例从 Amazon S3 存储桶下载 zip 文件并将其解压到 /etc/myapp 中:
Run Code Online (Sandbox Code Playgroud)sources: /etc/myapp: http://s3.amazonaws.com/mybucket/myobject
按照这些指示,我将文件上传到 S3 存储桶,并将以下内容添加到.elasticbeanstalk .ebextensions 目录中的 private.config 文件中:
sources:
/var/app/current/: https://s3.amazonaws.com/mybucket/config.tar.gz
Run Code Online (Sandbox Code Playgroud)
该 config.tar.gz 文件将提取到:
/config/database.yml
/config/initializers/omniauth.rb
/config/initializers/secret_token.rb
Run Code Online (Sandbox Code Playgroud)
但是,部署应用程序时,永远不会复制或提取 S3 主机上的 config.tar.gz 文件。我仍然收到无法找到 database.yml 的错误,并且 EC2 日志没有配置文件的记录,这是错误消息:
Error message:
No such file or directory - /var/app/current/config/database.yml
Exception class:
Errno::ENOENT
Application root:
/var/app/current
Run Code Online (Sandbox Code Playgroud)
闻起来像打字错误。
您链接到的说明在相关部分中说:
部署应用程序时自定义 AWS Elastic Beanstalk 环境需要两个步骤:
- 创建扩展名为.config的配置文件,并将其放置在源包的.ebextensions顶级目录中。您的.ebextensions目录中可以有多个配置文件。这些文件按字母顺序执行。例如,.ebextensions/01run.config 在 .ebextensions/02do.config 之前执行。
但是,您说您将.config文件放置在.elasticbeanstalk目录中。尝试修复目录名称。
| 归档时间: |
|
| 查看次数: |
3706 次 |
| 最近记录: |