小编Roy*_* Hu的帖子

如何在 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
Run Code Online (Sandbox Code Playgroud)

这一切都以同样的错误结束:

java.io.FileNotFoundException: /home/my_user_id/mp6key.json (No such file or directory)
Run Code Online (Sandbox Code Playgroud)

谁能建议我应该将密钥文件放在哪里,然后我应该如何正确指定文件的路径?

相同的程序在 Ecplise 中成功运行,并使用 GCP 的 Pub/Sub 处理(使用 GCP 中生成的项目 ID/服务帐户密钥)发布和订阅消息,但在部署到 GCP 上运行后,现在仍然遇到上述问题。

credentials publish-subscribe google-cloud-platform

3
推荐指数
1
解决办法
2万
查看次数

在GCP上使用Pubsub时如何解决身份验证范围不足的问题

我正在尝试构建 2 个微服务(在 Java Spring Boot 中)以使用 GCP Pub/Sub 相互通信。

首先,我测试了程序(在 Eclipse 中)在我的本地笔记本电脑( http://localhost )中按预期工作,即一个微服务发布了消息,另一个微服务使用在 GCP 中创建的主题/订阅者(以及凭证私钥:mypubsub.json)。

然后,我部署了相同的程序来运行 GCP,但出现以下错误:

- 2020-03-21 15:53:16.831 WARN 1 --- [bsub-publisher2] o.s.c.g.p.c.p.PubSubPublisherTemplate : Publishing to json-payload-sample-topic topic failed
- com.google.api.gax.rpc.PermissionDeniedException: io.grpc.StatusRuntimeException: PERMISSION_DENIED: Request had insufficient authentication scopes. at com.google.api.gax.rpc.ApiExceptionFactory
Run Code Online (Sandbox Code Playgroud)

我做了什么来部署程序(在容器中)以在 GCP/Kubernetes Engine 上运行:

  1. 切换到我的项目后登录 Cloud Shell 进行 Pubsub 测试
  2. Git 克隆我正在 Eclipse 中测试的程序
  3. 将 mypubsub.json 文件移动到 /home/my_user_id 下
  4. 导出 GOOGLE_APPLICATION_CREDENTIALS="/home/my_user_id/mp6key.json"
  5. 运行“mvn clean package”来构建杂服务程序
  6. 运行“docker build”来创建图像文件
  7. 运行“docker Push”将镜像文件推送到 gcr.io 存储库
  8. 运行“kubectl create”来创建部署并公开服务

一旦部署并公开这两个微服务,当我尝试在浏览器中访问它们时,发布消息的微服务可以很好地从数据库检索数据并处理数据,然后在尝试访问 GCP Pubsub API …

publish-subscribe google-cloud-platform google-kubernetes-engine

3
推荐指数
1
解决办法
5228
查看次数