google-cloud-platform - 如何在 application.properties 文件中指定 GCP 凭据位置(用于在 GCP 中使用 Pub/Sub)?
问题描述
通过在 application.properties 文件中指定文件位置来传递服务帐户密钥文件(从 GCP 控制台生成)似乎很简单。但是,我尝试了以下所有选项:
1. spring.cloud.gcp.credentials.location=file:/home/my_user_id/mp6key.json
2. spring.cloud.gcp.credentials.location=file:src/main/resources/mp6key.json
3. spring.cloud.gcp.credentials.location=file:./main/resources/mp6key.json
4. spring.cloud.gcp.credentials.location=file:/src/main/resources/mp6key.json
一切都以同样的错误告终:
java.io.FileNotFoundException: /home/my_user_id/mp6key.json (No such file or directory)
谁能建议我应该把密钥文件放在哪里,然后我应该如何正确指定文件的路径?
相同的程序在 Ecplise 中成功运行,使用 GCP 的 Pub/Sub 处理发布和订阅消息(使用在 GCP 中生成的项目 ID/服务帐户密钥),但现在在部署到 GCP 上运行后仍遇到上述问题。
解决方案
正如官方文档中提到的,凭证文件可以从多个不同的位置获取,例如文件系统、类路径、URL 等。
例如,如果服务帐户密钥文件作为 存储在类路径中src/main/resources/key.json
,则传递以下属性
spring.cloud.gcp.credentials.location=classpath:key.json
如果密钥文件存储在本地文件系统的其他位置,请使用file
属性值中的前缀
spring.cloud.gcp.credentials.location=file:<path to key file>
推荐阅读
- javascript - JavaScript:访问以点为键的对象字段
- javascript - javascript中的对象数组未按预期返回
- javascript - 如何使用 React JS 将数据放入我的 Google 电子表格
- sql - SparkSQL如何在FROM语句上加载带有标题的csv
- vue.js - 尝试在watch中调用vuex getter
- r - 拨浪鼓:“RGtk2Extras”不可用
- javascript - Axios - 未知数量的多个请求
- python - 将项目附加到列表理解中的列表返回无
- php - 将 Google 图表图像保存到文件
- reactjs - 如何避免 React/Redux 中的内联函数