Paperclip 配置与 AWS Elastic Beanstalk 冲突

Paperclip config conflicting with AWS Elastic Beanstalk

我在我的 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 正在读取回形针 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 等于我回形针配置中的以下值:

access_key_id: ENV.fetch('AWS_ACCESS_KEY_ID')

我似乎无法在网上找到任何有助于解决此问题的项目。

有什么想法吗?

我可以为两者使用相同的 IAM 用户以使 ENV 值匹配吗?

将回形针 S3 environment 变量添加到您的 Elastic Beanstalk Environment

How?

转到您的特定 Environment

Select Configuration

Configuration overviewselectSoftware

在最底部,您会看到一个表单部分 Environment properties

为变量添加 keyvalue 数据

保存并等待您的环境update

阅读更多: Elastic Beanstalk Docs