我想使用一些参数从另一个 lambda 函数 B 调用 Lambda 函数 A。
以下是调用 lambda 函数。
@SpringBootApplication
public class Application extends SpringBootServletInitializer implements CommandLineRunner {
@Autowired
private ConfigurableApplicationContext context;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... args) {
DCService dcService = LambdaInvokerFactory.builder().lambdaFunctionNameResolver(
(method, lambdaFunction, lambdaInvokerFactoryConfig) -> "EventPlanDCFunction-Dev")
.build(DCService.class);
log.info("Response from DC service :: {}",dcService.getClass());
String[] params = new String[]{"Subir has invoked"};
dcService.run(params);
SpringApplication.exit(context);
}
}
以下是文件的代码DCService.java。
public interface DCService {
@LambdaFunction(functionName = "DeliveryCycleLambdaHandler",
invocationType = InvocationType.Event)
void run(String... params);
}
以下是我要调用的 lambda 函数的代码。
@SpringBootApplication
public class Application extends SpringBootServletInitializer implements CommandLineRunner {
@Autowired
private ConfigurableApplicationContext context;
@Autowired
private DeliveryCycleService deliveryCycleService;
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Override
public void run(String... args) {
deliveryCycleService.printMessage(args[0]);
SpringApplication.exit(context);
}
}
正如您所看到的,我尝试通过从调用方法创建字符串数组来传递参数,但我进入了ArrayOutOFBoundException另一个方法,这意味着参数实际上并未到达调用的方法。如果我不传递参数,它可以正常工作,但对于我的用例,我需要传递参数并异步调用该方法。
慕的地10843
相关分类