如何使用文件内容设置 Heroku config var

Posted

技术标签:

【中文标题】如何使用文件内容设置 Heroku config var【英文标题】:How to set Heroku config var with contents of a file 【发布时间】:2013-09-19 20:59:46 【问题描述】:

要为 Heroku 应用设置配置变量,请执行以下操作:

$ heroku config:set GITHUB_USERNAME=joesmith

如何使用文件内容设置配置变量?

【问题讨论】:

【参考方案1】:

看看heroku-config插件,它添加了一个heroku config:push命令来将一个名为.env的文件中的键值对推送到应用程序。

它还有一个 heroku config:pull 命令来执行相反的操作,并且与 foreman 配合使用非常好,可以使用 .env 中的配置在本地运行应用程序。

https://github.com/xavdid/heroku-config

示例
heroku config:push --file=.env.production 

【讨论】:

如何配置管道评论应用的变量?【参考方案2】:

我知道这为时已晚,但它仍然对登陆这里的未来用户有所帮助。

我还想要一个快速的解决方案来向 heroku 应用程序添加变量,但是复制粘贴太无聊了。所以编写了一个脚本来从 .env 文件中读取值并将其设置在请求的应用程序中 - 所有东西都作为选项:

https://gist.github.com/md-farhan-memon/e90e30cc0d67d0a0cd7779d6adfe62d1

用法

./bulk_add_heroku_config_variables.sh -f='/path/to/your/.environment/file' -s='bsc-server-name' -k='YOUR_CONFIG_KEY1 YOUR_CONFIG_KEY2'

【讨论】:

【参考方案3】:

使用 honcho 和调用的简单纯 python 解决方案:

from honcho.environ import parse
from invoke import run

def push_env(file='.env'):
    """Push .env key/value pairs to heroku"""
    with open(file, 'r') as f:
        env = parse(f.read())
    cmd = 'heroku config:set ' + ' '.join(
        f'key=value' for key, value in env.items())
    run(cmd)

这里的想法是,您将获得与使用 honcho 在本地运行项目相同的配置。然后我使用 invoke 从命令行轻松运行此任务(使用 @taskc.run),但我已将其调整为独立运行。

【讨论】:

以上是关于如何使用文件内容设置 Heroku config var的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Heroku 系统变量中设置主文件夹?

如何设置 Heroku 配置文件,使其在 Heroku 部署的任何终端问题中接受“是”

Rails 应用程序 - 使用 Cloudfront 和 Heroku 进行资产交付

姜戈。在 Heroku 中使用多个设置文件

使用 heroku API 调用 DELETE config-vars 的端点

Heroku Django 在生产过程中如何获取设置文件?多种设置