【发布时间】: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