在不使用env var的情况下读取Heroku上的秘密配置文件

Shi*_*aul 5 heroku node.js google-cloud-platform google-cloud-pubsub

我正在使用带有NodeJS 的Google Cloud Pub Sub API,如此处所述。我正在使用Heroku运行服务器。

Node JS + Pub Sub页面上的示例代码要求我指定文件的路径:

pubsub = gcloud.pubsub({
    projectId: 'my-project',
    keyFilename: '/path/to/keyfile.json'
});
Run Code Online (Sandbox Code Playgroud)

我通常使用Heroku的config vars存储密钥和API密钥,但是在这种情况下,GCloud API似乎需要我指定文件的路径。因此,我需要将文件检入Heroku,但无需检入GitHub存储库。

我尝试了以下操作:将.gitignore文件推送到特定的远程服务器,以及如何将我的应用程序上传到github但删除敏感的授权信息?但问题在于,一旦我强制添加(git add -f keyfile.json)json文件并对其进行提交并创建一个新分支,我将无法将该提交推送至Heroku,因为执行此操作git push heroku master时会说Everything is up to date。无论如何,这似乎很混乱。必须有一种更清洁的方法来使Google Cloud与Heroku一起使用。

我该怎么办?

Shi*_*aul 3

GoogleCloudPlatform 上可爱的人们回答了:https://github.com/GoogleCloudPlatform/gcloud-node/issues/761

文档的代码示例中没有提到这一点,但您只需添加一个凭据对象并将其传递给您的配置即可。凭证对象可以读取环境变量。

更多信息请参见: https: //googlecloudplatform.github.io/gcloud-node/#/authorization
更新的链接: https://googleapis.dev/nodejs/pubsub/latest/global.html#ClientConfig