我在我的Rails 5.1应用程序中使用Paperclip,并在我的development.rb和production.rb中使用标准配置:
config.paperclip_defaults = {
storage: :s3,
s3_credentials: {
bucket: ENV.fetch('S3_BUCKET'),
access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID'),
secret_access_key: ENV.fetch('AWS_SECRET_ACCESS_KEY'),
s3_region: ENV.fetch('AWS_REGION'),
}
}
我通过Figaro gem将ENV变量存储在application.yml
中。
这很好,但我现在正在尝试将我的应用程序上传到新的AWS Elastic Beanstalk应用程序,并且我的构建失败了。花了大约3个小时来查看所有日志并尝试各种更改,我将故障范围缩小到我认为Beanstalk正在阅读Paperclip ENV并且变得混乱的事实。
来自日志:
rake aborted!
<<<
/var/app/ondeck/config/environments/production.rb:97:in `fetch'
/var/app/ondeck/config/environments/production.rb:97:in `block in <top (required)>'
/var/app/ondeck/config/environments/production.rb:1:in `<top (required)>'
/var/app/ondeck/config/environment.rb:5:in `<top (required)>'
/opt/rubies/ruby-2.4.3/bin/bundle:23:in `load'
/opt/rubies/ruby-2.4.3/bin/bundle:23:in `<main>'
Tasks: TOP => environment
和config/environments/production.rb:97
等同于我的Paperclip配置中的以下值:
access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID')
我似乎无法在网上找到任何有助于解决此问题的内容。
有什么想法吗?
我可以同时使用相同的IAM用户,以便ENV值匹配吗?
答案 0 :(得分:1)
将回形针S3 environment
变量添加到Elastic Beanstalk Environment
如何吗
转到您的具体Environment
选择Configuration
在Configuration overview
选择Software
磁贴
在最底部,您会看到表单部分Environment properties
为您的变量添加key
和value
数据
保存并等待您的环境update
。
了解详情: Elastic Beanstalk Docs