问题标签 [spring-cloud-gcp]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
54 浏览

java - 使用 Spring Cloud GCP Core 导入凭据时的 Google Cloud KMS 权限问题

我按照 Spring Cloud GCP文档导入凭据,spring.cloud.gcp.credentials.encoded-key 并尝试调用KeyManagementServiceClient.asymmetricSign以签署一些数据,但发生错误:

com.google.api.gax.rpc.PermissionDeniedException:io.grpc.StatusRuntimeException:PERMISSION_DENIED:权限'cloudkms.cryptoKeyVersions.useToSign'拒绝资源'projects/xxx/locations/xxx/keyRings/xxx/cryptoKeys/xxx'(或它可能不存在)。

我很确定凭据和 KMS 密钥都可以。当我使用GOOGLE_APPLICATION_CREDENTIALSJSON 路径导入凭据时,一切都很好。但是当我更改实现以使用 Spring Cloud GCP Core 导入凭据时它失败了。

出于某种原因,我必须使用 GCP Core 来导入凭据。

0 投票
1 回答
81 浏览

spring-boot - 在 Spring Boot 中使用 /actuator/refresh 端点访问 GCP 密钥

我正在使用“sm://”访问 Spring boot config Server / Client 中的 GCP 密钥,并且在应用程序启动时它运行良好。

现在我正在调用“/actuator/refresh”端点。这里应用程序无法为密钥指定的属性与 sm:// 前缀绑定。

但是,如果我提供纯文本,那效果很好;所以问题是从谷歌云访问密钥。

任何人都可以帮助我吗?

谢谢

0 投票
0 回答
76 浏览

java - com.google.datastore.v1.client.DatastoreException:找不到匹配的索引

我正在使用 Spring cloud 从文件存储连接和读取数据(在本机模式下使用 Cloud Firestore)。

Pom.xml

Spring GCP 版本 - <gcp.version>1.2.8.RELEASE</gcp.version>

实体

存储库

服务

保存工作得很好,但是在尝试读取它时,低于索引不匹配错误。我正在使用单个属性来读取数据。在这种情况下,firestore 会自动创建索引。有点困惑为什么我会收到这个错误。

错误

0 投票
0 回答
148 浏览

java - 我无法使用 Spring Boot 从 App Engine 中的服务连接到 Google Datastore

我有一个在 Java 中完成的应用引擎标准环境中运行的应用程序,并使用 datanucleus 访问数据存储。它工作正常,并且由于它在标准环境中运行,它完美地连接到数据存储。

现在,我正在使用 spring-cloud-gcp-data-datastore 库为在 Spring Boot 中完成的应用程序部署一项新服务。我有用于服务帐户连接的 .json 文件,它在我的本地环境中使用 gcloud beta 模拟器完美运行。

但是现在,在生产环境中,当应用程序尝试连接到数据存储时,我可以在日志中看到错误:

com.google.cloud.datastore.DatastoreException:I/O 错误 ... 原因:com.google.datastore.v1.client.DatastoreException:I/O 错误 ... 原因:java.net.ConnectException:连接被拒绝(拒绝连接)

似乎该服务无法连接到数据存储。

我怎样才能看到连接中有什么问题?是否有列出 Spring Boot 应用程序和数据存储的连接过程?

解决

感谢迈克的所有支持。他给了我 Spring Cloud GCP 文档的钥匙。

问题是当我部署到生产环境时,我必须禁用本地模拟器的配置。如果您不这样做,应用程序将找不到 Datastore 服务。

一旦我评论了 spring.cloud.gcp.datastore.host 配置(Datastore Emulator Autoconfiguration)的行,该应用程序在生产中运行良好。

0 投票
1 回答
263 浏览

java - 在 Java 中从 GCP 发布/订阅重试消息需要哪些设置

我是 GCP 发布/订阅的新手,并试图重新发送未确认的消息 (ack/nack)。在 GCP 控制台仪表板的订阅中,我提到过: 在此处输入图像描述

在我的 java 代码中,我创建了一个订阅者

我第一次在我的 receiveMessage(PubsubMessage message, AckReplyConsumer consumer) 上收到消息,但如果我不确认该消息,则不会再次收到消息。但是如果发送 nack 它会再次发送消息。

我是否需要提及其他配置以在不确认消息的情况下启用重试?

0 投票
0 回答
20 浏览

spring-boot - 在 GCP 中使用 ConfigMap 将 Spring XML bean 配置外部化

我是 Kubernetes 和 GCP 的新手。我需要将 .properties 文件和bean 初始化所需的一些 xml 配置文件外部化,另外(可选)根据对这些文件所做的更改自动重新加载容器化的 Springboot 应用程序(如果部分重新加载更好)。我知道使用属性文件,这可以根据此处的文档ConfigMap PropertySource借助 GKE 中 Kubernetes 中的 ConfigMap 来完成。

是否可以使用 ConfigMap 将 xml 文件外部化并监视更改并根据更改对 bean 进行热重新加载?如果在 ConfigMap 的帮助下无法做到这一点,还有其他选择吗?

0 投票
1 回答
50 浏览

google-app-engine - 在 GCP 的 Appengine 中,我们如何确保在 appengine 中使用 Java 代码,在应用引擎启动时不会出现 500 错误?

问题是我们希望我们基于 springboot java 构建的 appengine 在请求负载增加时自动缩放而没有任何停机时间,但问题是 appengine 服务器需要超过 60 秒才能启动,因为 Springboot java & 根据 GCP 策略,它会启动只要达到 60 秒的启动时间,就允许 api 在 appengine 上命中并且它不关心服务器是否完全启动。因此,这些 api 命中开始出现 500 错误。为了解决这个问题,我们在一篇文章中发现我们应该在 app.yaml 中添加“Warmup”:inbound_services:

  • 暖身

我们尝试将这个热身放在应用程序中。yaml。但这无济于事。我们已经尝试使用 flexi 应用程序引擎,我们也尝试过 cloudrunner,但我们面临同样的问题......任何人都可以为此建议一个正确的解决方案......

0 投票
1 回答
153 浏览

kubernetes - GCP - 使用 HPA 根据自定义日志记录指标扩展 GKE pod

我想在 GKE HPA 上使用自定义日志指标。Metrics 可以在 metrics explorer 上查看,但无法在 HPA 上使用。我们已经安装了自定义指标适配器,并且我们能够使用其他自定义指标,例如kubernetes.io|pod|network|received_bytes_count成功进行扩展。下图显示了我想在 HPA 上使用的自定义指标的指标资源管理器图

该指标是根据应用程序日志创建的

在此处输入图像描述

在 HPA yaml 之后使用以使用该指标

请在下面找到错误

0 投票
2 回答
185 浏览

java - 不支持 ALPN - 在 Spring Boot 应用程序中使用 Google pub-sub 消息时出错

我们正在开发一个订阅 Google pub-sub 主题的 Spring Boot 应用程序。下面是我的代码 -

pom.xml 具有 GCP-Spring Boot 相关依赖项

应用程序.yml 文件

定义bean的配置类

这是我的听众课

上面的代码在我的本地系统中对我来说很好。我能够启动我的应用程序、订阅频道、收听我的 ServiceActivator 方法中的消息并能够打印它们。

当我将它们部署到 Azure 云时,能够订阅频道,启动应用程序,但在收听消息时,出现以下异常

根据异常,我怀疑 Java 版本可能存在问题,因此检查了详细信息

我本地系统中的 Java 版本详细信息 -

Azure 中的 Java 版本详细信息 -

有没有可能是Java版本的问题?因为它在本地运行良好,但在 Azure 中运行良好。为什么 ALPN 在使用 GCP 时会出现?如果问题出在不支持 ALPN 的 Java 版本上,那么解决该错误的可能性是什么?

0 投票
2 回答
163 浏览

spring-boot - Google Cloud Build 中的 Spring Boot 应用程序出错 - 创建工作版本但报告构建失败

我有一个以前构建良好的 Java Spring Boot 应用程序,但我们现在遇到了问题。

我们正在使用 GCP,当我们推送到 GCP 中的某些分支时,云构建功能会自动触发构建。目标是让应用程序自行构建,然后部署到应用程序引擎。在多次试验和错误之前的各种迭代中,我们成功地做到了这一点。

该应用程序已成功构建和部署。这意味着如果我推送代码,它就会构建并工作。但是云构建工具不断报告构建失败。

我们的 cloudbuild.yaml

这里是一个 app.yaml 供参考

第一步完成得很好,或者看起来是这样。

该应用程序在该特定版本上可用并且运行良好。

这是我们当前面临的“失败”,在第二步失败构建的输出中找到:

我们在构建缓存方面一直存在相当一致的问题,以至于过去我们推送新代码并启动旧版本的代码。我想这可能都是相关的。

我们已尝试清除应用程序特定版本的整个容器注册表缓存,这就是该特定问题开始发生的时间。我有一种感觉,它只是构建和启动应用程序的一个版本,然后返回并尝试在此之上启动应用程序的不同版本。寻找一种至少获得更详细日志记录的方法,但这主要是我卡住的地方。

如何调整“名称:'gcr.io/cloud-builders/gcloud'”步骤以正确指示部署有效?这是正确的方法吗?