为什么“ENV变量'S3_KEY'需要设置”在部署时被抛出?

时间:2011-03-24 17:55:08

标签: deployment amazon-s3 heroku heroku-san

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

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

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文件中?

3 个答案:

答案 0 :(得分:2)

无需手动运行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

答案 1 :(得分:1)

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

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

有更好的想法吗?

答案 2 :(得分:0)

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