Deployment 为什么是;环境变量';S3#U键和x27;“需要设置”;部署时被抛出?

Deployment 为什么是;环境变量';S3#U键和x27;“需要设置”;部署时被抛出?,deployment,amazon-s3,heroku,heroku-san,Deployment,Amazon S3,Heroku,Heroku San,我想使用它来部署多个环境。我使用dragonfly进行图像处理,使用S3进行存储。通常,您可以直接使用heroku配置:add S3\u key=…S3\u secret=…为存储添加密钥和密码 因此,我已将这些详细信息添加到heroku_san使用的heroku.yml文件中: staging: app: app-staging config: &default BUNDLE_WITHOUT: "development:test" S3_KEY: XXXXXXX

我想使用它来部署多个环境。我使用dragonfly进行图像处理,使用S3进行存储。通常,您可以直接使用
heroku配置:add S3\u key=…S3\u 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文件中?

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

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

有更好的主意吗?

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

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

$ rake all heroku:config
每当更新heroku.yml文件时,重复此操作

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

$ rake -T

在heroku_san代码中:

看起来很有希望。我得试试。干杯谢谢你能告诉我它对你是否有效吗?干杯当然可以不过可能需要一点时间。heroku:rack_env只设置rack_env环境变量。@jhiro009根据他们的“在Aspen和Bambor堆栈上,RAILS_env将自动镜像rack_env中的任何内容。”我让heroku_san更新文档,我的更改刚刚合并到了中。