如何使用基于heroku应用程序名称的google api密钥

Var*_*run 7 google-maps development-environment heroku

我为我的应用程序创建了一些不同的"环境",这些环境托管在heroku上,所以我有:appName-staging.heroku.com appName-production.heroku.com

我想为这些应用程序使用不同的谷歌API密钥,我该怎么做?我创建了一个google.yml文件,看起来像:

开发:api_key:'ABCXYZ'

制作:api_key:'DEFXYZ'

所以我在本地开发时使用ABCSZY,而对于appName-production.heroku.com问题则使用DEFXYZ,如何让appName-staging.heroku.com使用不同的密钥?

由于部署到Heroku的每个应用程序都被认为是"生产",appName-staging.heroku.com和appName-production.heroku.com都使用相同的密钥.

the*_*RON 5

您可以为每个环境添加一个heroku配置变量,允许您从应用程序中识别每个变量.

有点像:

$ heroku config:add APP_NAME_ENV=production --app appName-production
$ heroku config:add APP_NAME_ENV=staging --app appName-staging
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用以下内容从应用内获取当前环境:

ENV['APP_NAME_ENV']
Run Code Online (Sandbox Code Playgroud)

如果您将YAML文件作为类似的哈希值GOOGLE_KEYS,则以下内容将返回给定环境的正确密钥:

GOOGLE_KEYS[ENV['APP_NAME_ENV']]
Run Code Online (Sandbox Code Playgroud)