问题标签 [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 投票
1 回答
378 浏览

google-cloud-pubsub - 通过 Spring Cloud Stream 发布到 Pub/Sub 的持久性保证

我正在使用 Spring Cloud Stream 从 Google Pub/Sub 主题发送和接收消息,并且对发布有疑问。如果我有一个 @Output MessageChanel 并且我调用 channel.send(message) 并且调用正常返回(没有异常),我是否保证 Pub/Sub 现在有消息?我正在寻找类似于 JMS 系统中的“持久”消息保证的东西。

我似乎记得有可以为发布配置的批处理参数和/或异步设置,我还想知道这一切如何影响担保人(如果有的话)。这些似乎会使通过 channel.send 发送单个消息的任何保证复杂化。

谢谢。

0 投票
1 回答
558 浏览

java - Spring Cloud GCP PubSub DLQ(死信队列)使用 Spring Integration

我目前正在使用以下方法集成 PubSub https://docs.spring.io/spring-cloud-gcp/docs/1.2.4.BUILD-SNAPSHOT/reference/html/#spring-integration

基本上我订阅了一个主题,我收到消息并用它做一些事情。

如果我的业务规则出现任何错误情况(例如因为 X、Y、Z 原因不接受消息),我想将其发送到 dlq。

我看到就在一个半月前,谷歌推出了用于 PubSub 的 DLQ:https ://cloud.google.com/pubsub/docs/dead-letter-topics

但我不确定将它与 spring 集成方法集成的正确方法应该是什么。

0 投票
1 回答
379 浏览

java - GCP 数据存储区查询嵌套实体引用 (entityB.name)

我无法确定 GCP 数据存储区是否支持查询实体的嵌套属性。

我现在的用例是这样的:

模块

在此处输入图像描述

应用

在此处输入图像描述

我想尝试根据嵌套Application名称查询模块。我试过像这样提供过滤器但没有成功:

我正在通过他们的 DatastoreTemplate 使用 Springs GCP 数据存储抽象,但这似乎并不相关,因为当我尝试在 GCP 控制台上运行 GQL 时,我也没有得到任何结果。

感谢您花时间阅读本文。非常感谢您对此的任何帮助!

0 投票
1 回答
226 浏览

java - Spring Firestore 乐观锁(数据版本控制)

我正在寻找为 Firestore DB 文档启用乐观锁定的方法,但似乎@Version注释不起作用。

目前我正在使用spring-cloud-gcp-starter-data-firestorelib 来扩展FirestoreReactiveRepository接口存储库。我查看了 spring cloud gcp 文档,并没有发现任何关于乐观锁定和数据版本控制的信息(例如使用文档的 modificatioNumber 字段)。

我是有人知道有没有办法使用spring libs或其他一些libs以声明方式(使用一些注释)或以编程方式启用Firestore DB文档的乐观锁定?谢谢。

0 投票
0 回答
467 浏览

spring-boot - Spring Boot 和 GCP:没有 org.springframework.cloud.gcp.secretmanager.SecretManagerTemplate 类型的合格 bean

连接到 GCP 以从秘密管理器获取秘密时出错,但不知何故它对我不起作用。

运行应用程序时出现错误:

没有 org.springframework.cloud.gcp.secretmanager.SecretManagerTemplate 类型的合格 bean

我正在使用如下 SecretManagerTemplate 来获取秘密:

细节:

  • Spring Boot 版本:2.1.8
  • Spring Cloud 版本:Greenwich.RELEASE
  • Spring Cloud GCP 版本 1.2.5.RELEASE

注意:我不想升级 Spring Boot 版本。

请帮忙。

0 投票
2 回答
413 浏览

spring-boot - Google Cloud Datastore:按属性列表查询

我正在寻找如何通过属性列表在数据存储中查询的方法。

所以,我有一个简单的实体:

我想通过列表进行查找appIds。但是,似乎 Datastore 不提供这种可能性。

DatastoreTemplate仅提供一种可能性 -findAllById但它既不适用于其他字段,也不适用于其他过滤器(例如按状态)。

不幸的是,StructuredQuery.PropertyFilter也不提供这种可能性。 StructuredQuery.CompositeFilter有 onlyand但没有既没有or也没有in

可能有人面临同样的问题并以某种方式解决它?

0 投票
2 回答
1070 浏览

java - 如何将 Camel google-pubsub-component 连接到 Pubsub 模拟器?

我已经尝试了几个小时未能成功获取我的 Spring Boot 应用程序的 Camel 路由(通过 Camel 组件camel-google-pubsub连接到Google Pubsub Emulator的本地实例。

  • 我的模拟器正在运行:
  • 我的 env var没问题:为了避免连接到真正的 PubSub 实例PUBSUB_EMULATOR_HOST=localhost:8085,我已禁用GOOGLE_APPLICATION_CREDENTIALS

  • 我的骆驼路线:

  • 我的application-dev.yml

最后,当我尝试在本地运行我的应用程序时,我的控制台输出是这样的:

如果有人已经成功地将 pubsub 模拟器与他们的 Camel 路由一起使用,我对您的解决方案很感兴趣。

0 投票
1 回答
162 浏览

spring-boot - Spring Boot + gcp datastore + datastore 模拟器获取 INVALID_ARGUMENT 遇到“OR”/“IN”

我有一个在 App Engine 标准环境中运行的应用程序,它使用 Google Cloud Tools 和 Datanucleus 框架来访问数据。

当我在本地环境中运行此应用程序时,它可以正常工作,并且当我在 Where 子句中使用 OR 或 IN 进行 Select 时,它会毫无问题地返回表的寄存器。

现在,我想改进我的应用程序并使用 Spring Boot、Spring Cloud GCP 和本地 Cloud Datastore Emulator 创建一个新应用程序。当我尝试对 Datastore Emulator 进行查询时,它可以正常工作,但是当查询具有 IN 或 OR 时,模拟器会记录和错误。

查询是:

和错误文本:

Datastore Emulator 可以使用 OR 或 IN 子句进行查询吗?

有没有办法以不同的方式做到这一点?

0 投票
1 回答
91 浏览

google-cloud-platform - 从同一 GCP 项目中的不同 gke 集群中过滤 Google Cloud Traces 中的信息

我有一个 GCP 项目,其中有两个 GKE 集群,一个用于开发和预生产工作负载,另一个用于生产。

我正在使用 Google Cloud Trace 来关联不同 Spring Boot 微服务调用的信息。

问题是 Trace 列表视图同时显示了来自两个集群的所有调用,因此很难将生产调用与其他集群区分开来:

在此处输入图像描述

有没有办法过滤来自不同集群的调用?

如果没有,一种解决方案是将 GKE 生产集群隔离在其自己的 GCP 项目中。这是一个好习惯吗?

0 投票
3 回答
450 浏览

java - 未安装提供程序“gs”

我在这里找到了两个类似的帖子,但一个没有得到回答,另一个是关于 android 的。我有一个 Spring Boot 项目,我想在我的应用程序中访问 GCP 存储文件。

在本地一切正常,我可以访问我的存储桶并在我的存储中读取和存储文件。但是当我将它上传到 gcp kubernetes 时,我得到以下异常:

“java.nio.file.FileSystemNotFoundException:提供程序“gs”未安装在 java.nio.file.Paths.get(Paths.java:147) ~[na:1.8.0_212] 在 xx.xx.StorageService.saveFile(StorageService .java:64) ~[classes!/:0.3.20-SNAPSHOT]

我出现的代码行如下:

}

completePath 可能导致类似“gs://my-storage/path/to/file/image.jpg”

我有以下依赖项:

有谁知道在哪里看?除了基础设施之外,唯一真正的区别是我没有明确不在 kubernetes 上使用身份验证,因为根据文档,它不是必需的

在 Google Cloud Platform 环境(例如 Compute Engine、Kubernetes Engine 或 App Engine)中使用 Google Cloud 库时,无需额外的身份验证步骤。