问题标签 [spring-cloud-function]

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 回答
1601 浏览

spring-boot - 带有 Spring Boot + Spring Cloud Function 的 Azure Function 无法找到主类

尝试运行azure-sample,但在请求进入时遇到“无法定位主类”错误。

使用 Maven 在 Eclipse 中构建项目。基于此问题更新代码(否则您将获得 ClassCast 异常)。

在本地或远程(部署后)运行会产生相同的错误。

没有更改示例中的 POM,只是指向我的 functionAppName、Region、ResourceGroup 以准备部署。

编辑: azure-functions 文件夹中的 jar 似乎与 Thin spring maven 插件创建的最终 jar 不同。清单文件包含不同的电源。azure-functions jar 似乎只是 maven-jar-plugin 的结果,但它仍然引用 @SpringBootApplication 类作为它的主要类。这不应该仍然有效吗?在这个例子中使用瘦包装器有什么意义?

0 投票
1 回答
256 浏览

aws-lambda - 如何使用带有 AWS Lambda 和 SNS 事件的 Spring Cloud Functions 触发重试

我在处理 SNS 事件的 AWS Lambda 上运行了一个 Spring Cloud 函数。对于某些错误情况,我想触发自动 Lambda 重试或触发 SNS 服务的重试功能。SNS 重试策略采用默认配置。

我尝试返回带有 {"statusCode":500} 的 JSON,当我们在 aws 控制台中进行测试调用时,它正在工作。无论如何,当我们发送此状态时,不会触发函数的重试调用。

我们使用 SpringBootRequestHandler

0 投票
1 回答
160 浏览

spring-data - 将spring数据存储库注入spring cloud函数

我想在 spring 云功能中使用 spring 数据存储库功能。

我已经使用 azure 提供程序克隆了 spring 云功能:https ://github.com/spring-cloud/spring-cloud-function/tree/2.2.x/spring-cloud-function-samples/function-sample-azure

我让它在本地和天蓝色上运行。

我想做以下事情:

示例 mongo 存储库:

结果是 NullPointerException。知道弹簧云功能是否可行吗?

0 投票
0 回答
291 浏览

spring-integration - Spring WebFlux:测试 WebClient 服务器发送事件

实际上,我什至不确定是否可以做我想做的事情:我正在Event.class使用 Spring Integration 使用来自代理 (MQTT) 的事件流 (),并希望将流转发到另一个微服务。这两种服务都应该是水平可扩展的。因此,在其他服务中,我有一个 POST 端点,除了Flux<Event>as 主体(使用 Spring Cloud Functions: spring-cloud-starter-function-webflux)。在转发服务中,我想使用 Ribbon 和WebClient.

到目前为止我所拥有的(简化):

我的问题:

(1)他们有机会测试这个吗?我该怎么做?关于 OkHttp,WireMock,一个测试中的内部弹簧启动应用程序,它有/eventReceiverEndpoint但只是断言。然而,并没有真正到达任何地方。实际上 atm 我什至没有收到错误。我本来预计会出现 4xx,因为在启动时没有内存服务器。

(2)这两个retry()调用真的重试双方的连接问题吗?如果断开连接,我会丢失消息吗?我该如何测试呢?

(3) Ribbon 与这个长寿的 Flux 结合是否仍然能够在建立连接后进行负载平衡(比如当最终消费者的负载变高时左右)。我想它必须自动将 Flux 重新连接到另一个实例?

0 投票
1 回答
583 浏览

spring-cloud - 为什么我的 Spring Cloud 函数试图打开本地 HTTP 连接?

我正在向 AWS Lambda 部署一个相当简单的 Spring Cloud 函数,并且遇到了冷启动缓慢的问题,并且在部署后调用该函数时偶尔会出现故障。

首先,这是我的单节课。(最终这个函数将对数据库进行一些域记录查找,所以这里使用的名称“域”相当自由。我还删除了任何实际的数据处理,只是返回字符串。

这是项目的依赖项:

现在,当我将应用程序的“shadowJar”版本打包并部署到 AWS Lambda 时,启动日志显示连接被拒绝失败:

... 启动尝试在本地连接到端口 80 是否有原因?(同样重要的是——我可以把它关掉吗?)

0 投票
0 回答
1292 浏览

spring-cloud - Spring Cloud 函数和 SQSEvent 触发的 AWS Lambda 函数

我无法使用 SQS 消息触发器使基于 Spring-Cloud 的 AWS Lambda 函数工作。我正在使用 Spring Cloud Function AWS 适配器版本 2.0.1.RELEASE 并尝试部署到 AWS EU-WEST-2 区域。

我的 SpringBootRequestHandler 定义如下:

我的@Bean 函数如下所示:

我用以下测试事件来提供它:

当我运行这个时,我收到以下错误:

有人对这里出了什么问题有任何建议吗?或者,如果网络上有任何适用于我的确切场景的工作示例,那也很好。

0 投票
0 回答
235 浏览

spring - 如何使用 SpringBootRequestHandler 将 JSON 解析为 AWS Lambda 请求负载

我有一个使用 Spring 云函数编写的 AWS lambda。我的入口点定义为 .

然后我有一个实现 Function 接口的类,其中包含 Lambda 的逻辑。当我使用测试字符串(例如“sample”)从 Lambda 调用它时,它工作正常,但是当我使用 JSON 有效负载(例如,使用 SNS 触发器)调用它时,我得到以下异常。

"errorMessage": "com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of java.lang.String out of START_OBJECT

我错过了什么吗?

0 投票
0 回答
295 浏览

java - Spring Cloud Stream 的组合函数支持抛出异常:“队列已满:Reactive Streams 源不尊重背压”

我们正在使用带有 Rabbit binder 的 Spring Cloud Stream (2.1.2.RELEASE) 构建事件驱动的微服务,并面临与 Spring Cloud 功能 (2.0.1.RELEASE) 集成的一些问题。

我们的源流如下:

  1. 读取 SFTP 服务器上的 CSV 文件并将其复制到本地
  2. 按行拆分本地文件内容
  3. 将 csv 行转换为自定义对象(使用函数)
  4. 在内置的 Source 输出通道上发布

我们使用以下(简化的)Java DSL 来描述第 1 步和第 2 步:

以及处理第 3 步的函数:

在 application.properties(或命令行)中:

当文件包含几行时(即使有一些转换错误,在全局错误通道中重定向),它按预期工作,但是一旦文件包含很多行(包含一些转换错误),就会抛出以下错误:

我们花了很多时间进行调试,但没有成功,任何帮助将不胜感激。

0 投票
3 回答
1539 浏览

spring-webflux - 函数式编程模型bean定义与spring-cloud-function + spring-cloud-stream集成

大家好,特别是春季团队!

如何以函数式 Bean 编程模型风格使用 spring-cloud-stream 管道 spring-cloud-function?

例如,我有两个依赖项的 pom.xml:

假设我接下来想做:

  1. 通过 spring-cloud-function (webflux) 通过 http 有效负载字符串发送
  2. 使用我的 toUpperCase 函数将其大写
  3. 最后发送到我的管道中以安装 binder (kafka/rabbit/test-binder)

所以我期待像这样实现它:

因此,当我使用 HTTPie 发送有效负载时,如下所示:

spring-cloud-function 似乎工作正常,我可以看到预期的日志:

同样的想法,如果我通过 rabbitmq 管理 web ui 发布消息,但是我如何从一个管道到另一个管道

所以我的问题与根据spring文档相关,该文档说我也可以使用spring-cloud-stream: Wrappers for @Beans of type Function, Consumer and Supplier,将它们作为HTTP端点和/或消息流暴露给外界使用 RabbitMQ、Kafka 等的听众/发布者,但我不明白怎么做?

目前,不幸的是,我只能使用 Source 手动将消息发布到 spring-cloud-stream binder,请参见此处的示例,但我当然想知道是否可以使用 spring 来避免,神奇地......

请任何人告诉我(可能是 Gary Russell、Dave Sawyer、Artem Bilan、Oleg Zhurakousky 或其他任何知道的人):我错过了什么以及我应该如何配置我的应用程序或者我应该在我的 application.properties 中添加哪些道具等?

谢谢!

更新

已经有一段时间了,但我决定在这里发布一个解决方案......

简而言之:固定提交在这里:https ://github.com/daggerok/spring-cloud-function-stream-integration/commit/35325465b81bb869c31ec7892f413ab891d6d0fd

所以基本上使用 StreamBridge 我可以将 spring-cloud-function 与 spring-cloud-stream 连接起来......我可以在适当的目的地发送任何想要的东西,可以直接从我的 spring-cloud-function 主体配置所需的管道链

在提到的更新存储库中查看详细信息(如果您愿意,可以修复分支)

干杯!


问候,马克西姆

0 投票
1 回答
3849 浏览

java - 如何在运行基于 Spring Cloud Function 的 AWS Lambda 时解决空指针异常

我正在尝试将一个简单的 Spring Boot 应用程序上传到 AWS lambda 中,但是每次我从 Lambda 调用它时都会收到 Null 指针异常,下面我将发布代码

演示应用

SpringBootLambdaHandler

大写字符串处理程序

应用程序属性

pom.xml

获取以下异常

日志输出

从下面的例子中得到参考

https://www.baeldung.com/spring-cloud-function