【发布时间】:2021-05-20 13:37:18
【问题描述】:
我有一个具有两个功能的 Spring Cloud Function 应用程序:
@Component
public class MyFunctionOne implements Function<Object, Boolean> {
@Override
public Boolean apply(Object o) {
return true;
}
}
@Component
public class MyFunctionTwo implements Function<Object, Boolean> {
@Override
public Boolean apply(Object o) {
return true;
}
}
我的项目依赖项中有spring-cloud-starter-function-web 和spring-cloud-function-adapter-aws。
我想分别致电MyFunctionOne 和MyFunctionTwo。
我可以通过两种方式在本地运行。我可以通过调用 localhost:8080/myFunctionOne 来直接调用函数(因为我使用的是spring-cloud-starter-function-web)。或者我可以通过调用 localhost:8080/functionRouter 并在 spring.cloud.function.definition http 标头中提供 myFunctionOne 来使用 Function Routing 功能。这很好用,我可以分别触发MyFunctionOne 和MyFunctionTwo。
我已将模块部署到 AWS Lambda。如何动态提供spring.cloud.function.definition?根据documentation,我可以使用org.springframework.cloud.function.adapter.aws.FunctionInvoker 作为AWS Lambda 处理程序。或者,我也可以定义自己的SpringBootStreamHandler。但是,似乎无法动态定义spring.cloud.function.definition。
有没有办法在部署到 AWS lambda 的 Spring Cloud Function 中选择一个函数?
【问题讨论】:
标签: spring lambda spring-cloud-function