【问题标题】:Spring boot application with cloud run and cloud firestore具有 Cloud Run 和 Cloud Firestore 的 Spring Boot 应用程序
【发布时间】:2021-12-03 11:33:36
【问题描述】:

我有一个简单的 Spring Boot 微服务 (gradle),我想将它部署在云上运行并使用云 Firestore 来存储一些数据。我在本地配置它,所以我可以读取和写入数据到 Firestore。如果我在本地创建并运行应用程序的 docker 映像,它就可以工作。 当我将它部署到云运行时,应用程序正常启动,

除非它尝试从 firestore 读取数据(当我调用端点时),我在邮递员中得到以下异常:

java.util.concurrent.ExecutionException: com.google.api.gax.rpc.PermissionDeniedException: io.grpc.StatusRuntimeException: PERMISSION_DENIED: 权限缺失或不足。

在云端,docker 镜像是通过我的 github repo 使用 cloud build 创建的。

我应该怎么做才能让它在云上运行?

【问题讨论】:

  • 问题。您的本地服务帐户权限是否与已部署环境上的权限相同?
  • 是的,我使用了同一个服务帐号
  • 不是真的,我从本地机器和本地 docker 容器成功连接到 firestore。只有当应用程序在 Cloud Run 上运行时才会出现问题。当我调用服务时,有一些奇怪的日志。
  • 如何部署?您如何使用相同的服务帐户在本地进行测试(如何加载它)?你能分享这些代码吗?

标签: java google-cloud-firestore dockerfile google-cloud-run spring-boot-gradle-plugin


【解决方案1】:

我发现了问题。

我按照documentation 的说明进行操作,这里使用了这个库:

compile 'com.google.cloud:google-cloud-firestore:1.32.0'

然后我尝试使用这个库(这是documentation),一切正常!

implementation 'com.google.firebase:firebase-admin:8.1.0'

【讨论】:

    猜你喜欢
    • 2021-09-13
    • 2021-08-17
    • 2021-08-19
    • 1970-01-01
    • 2021-10-09
    • 2020-12-30
    • 1970-01-01
    • 2021-06-09
    • 2019-12-04
    相关资源
    最近更新 更多