【问题标题】:Why is "ENV variable 'S3_KEY' needs to be set" being thrown on deployment?为什么在部署时抛出“需要设置 ENV 变量‘S3_KEY’”?
【发布时间】:2011-03-24 17:55:08
【问题描述】:

我想使用heroku_san 将多个环境部署到heroku。我使用蜻蜓进行图像处理,使用 S3 进行存储。通常您可以直接使用heroku config:add S3_KEY=… S3_SECRET=… 为存储添加您的密钥和秘密。

所以我已将这些详细信息添加到heroku_san 使用的heroku.yml 文件中:

staging:
  app: app-staging
  config: &default
    BUNDLE_WITHOUT: "development:test"
    S3_KEY: XXXXXXXXXXXXXXXXXX 
    S3_SECRET: XXXXXXXXXXXXXXXXXX
    S3_BUCKET: app-staging

但在部署时我仍然得到:

rake aborted!
ENV variable 'S3_KEY' needs to be set - use
    heroku config:add S3_KEY=XXXXXXXXX

我在这里缺少什么?有没有比将这些信息存储在 YML 文件中更好的方法?

【问题讨论】:

    标签: deployment amazon-s3 heroku heroku-san


    【解决方案1】:

    无需手动运行heroku config:add。只需运行 heroku_san 的配置任务:

    $ rake all heroku:config
    

    每当您更新 heroku.yml 文件时重复此操作。

    我也对此感到困惑,因为它奇怪地出现在 heroku_san 的文档中,但该选项确实出现在 rake 任务列表中:

    $ rake -T
    

    在 heroku_san 代码中:https://github.com/fastestforward/heroku_san/blob/master/lib/heroku_san/tasks.rb

    【讨论】:

    • 我 fork heroku_san 来更新文档,我的更改刚刚被合并。
    【解决方案2】:

    一个简单的解决方案/解决方法:

    heroku config:add S3_KEY=XXX S3_SECRET=XXX --app app-staging
    

    有更好的想法吗?

    【讨论】:

      【解决方案3】:

      我认为您需要运行命令rake all heroku:rack_env。然后,此命令将根据您的 heroku_san YAML 配置为您设置环境配置。

      【讨论】:

      • 看起来很有希望。一定要试一试。干杯!
      • 谢谢。你会告诉我它是否有效/不适合你吗?干杯!
      • 当然可以。不过可能需要一点时间。
      • heroku:rack_env 只设置 RACK_ENV 环境变量。
      • @jhiro009 根据他们的documentation,“......在 Aspen 和 Bamboo 堆栈上,RAILS_ENV 将自动镜像 RACK_ENV 中的任何内容。”
      猜你喜欢
      • 1970-01-01
      • 2018-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      • 2014-06-11
      • 1970-01-01
      相关资源
      最近更新 更多