我将Google Cloud Pub Sub API与NodeJS一起使用,documented here。我正在使用Heroku来运行我的服务器。
Node JS + Pub Sub页面上的示例代码要求我指定文件的路径:
pubsub = gcloud.pubsub({
projectId: 'my-project',
keyFilename: '/path/to/keyfile.json'
});
我通常使用Heroku的配置变量存储机密和API密钥,但在这种情况下,似乎GCloud API 需要我指定文件的路径。所以,我需要将文件签入Heroku,但不是我的GitHub仓库。
我尝试了以下内容:Pushing .gitignore files to specific remote和How can I upload my application to github but remove sensitive authorization information?但问题是,一旦我强制添加(git add -f keyfile.json
)json文件并从中提交并创建一个新文件分支,我无法将该提交推送到Heroku,因为当我git push heroku master
时,它会说Everything is up to date
。无论如何,这似乎非常混乱。必须有一种更简洁的方法让Google Cloud与Heroku一起使用。
我该怎么办?
答案 0 :(得分:2)
可爱的人们在GoogleCloudPlatform上回答:https://github.com/GoogleCloudPlatform/gcloud-node/issues/761
文档中的代码示例中未提及,但您只需添加凭据对象并将其传递给配置即可。凭证对象可以读取env vars。
此处提供更多信息:https://googlecloudplatform.github.io/gcloud-node/#/authorization
答案 1 :(得分:0)
不是用于nodejs,而是用于GO(GOLANG),将每个字段值作为环境变量中的单独键保留,然后您将需要执行以下操作,创建结构,转换为json(替换每个{{1} }移至private_key中的\\n
),然后输入选项。 WithCredentialsJSON :
\n