问题描述
我真的很喜欢Spring云功能将业务逻辑与运行时目标(本地或云)分离的方式,并使其易于与无服务器提供程序集成。
我计划将SCF与API网关后面的AWS Lambda一起使用,以设计系统的后端。
但是,我还不清楚在Spring云函数内部处理REST相关参数(例如查询参数,标头,路径等)的推荐方法是什么。 根据我们的初步分析,我们可以得出两种可能的方法:
- 在API Gateway中启用“ Lambda代理集成”时,查询参数和其他信息可作为SCF中的消息标头使用。
- 我们可以在API Gateway中使用“映射模板”将所有必需的信息映射到JSON主体中,并反序列化为POJO以将输入直接输入到SCF中。 这样,SCF无需理会所需数据如何传递到API。
推荐使用什么方法实现这一目标?我们是否缺少能够更好地做到这一点的东西?
解决方法
我认为您不会错过任何特色功能,但也许使用复合函数可能也很方便-例如marshal|transform
,其中marshal
是Function<Message<?>,?>
,而transform
是业务逻辑。 marshal
函数可以是通用的(并转换为某种规范形式),并且可以作为自动配置在共享库中提供(例如)。