回形针配置与 AWS Elastic Beanstalk 冲突



我在我的Rails 5.1应用程序中使用回形针,并在我的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'),
    }
  }

我正在通过费加罗宝石将 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

如何?

转到您的特定Environment

选择Configuration

在"Configuration overview"中选择"Software磁贴

">

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

为变量添加keyvalue数据

保存并等待您的环境update

阅读更多:Elastic Beanstalk Docs

最新更新