【问题标题】:Set Json file as an environment variable in heroku在heroku中将Json文件设置为环境变量
【发布时间】:2020-11-24 09:14:27
【问题描述】:

我们在我们的应用程序中使用谷歌分类器(谷歌的人工智能和机器学习产品)用于其中一个用例。谷歌需要包含凭据的 json 文件来访问分类器相关的东西。我们正在尝试在环境中设置这个 json 文件heroku 上的变量。

我们想在 Heroku 的环境变量中设置 JSON 文件(.json)。 我们如何实现上述场景?

【问题讨论】:

  • 您编写的代码从环境变量而不是文件中读取。

标签: heroku environment-variables


【解决方案1】:
  1. 将json文件编码为字符串
import json
with open('service_account.json', 'r') as f:
    info = json.load(f)
service_account_info = json.dumps(info)
  1. 例如将字符串转储到您的 .env 文件中
with open('.env', 'a') as f:
    f.write(f'GOOGLE_SERVICE_ACCOUNT={service_account_info}')
  1. 将 .env 值推送到 heroku,例如使用 invoke 运行命令和 honcho 解析 env 文件。 (也可以使用 subprocess 和 python-dotenv 等)
from invoke import run
from honcho.environ import parse
with open('.env', 'r') as f:
    env = parse(f.read())
cmd = 'heroku config:set ' + ' '.join(
    f'{key}=\'{value}\''
    for key, value in env.items()
)
run(cmd)
  1. 扔掉(隐喻地)json文件,只使用envvars。
import json
service_account_info = json.loads(getenv('GOOGLE_SERVICE_ACCOUNT'))
# do something with service_account_info!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-16
    • 1970-01-01
    • 2015-08-18
    • 2014-04-03
    • 1970-01-01
    • 2018-07-29
    • 2021-07-30
    • 2019-04-02
    相关资源
    最近更新 更多