【发布时间】:2017-02-08 11:21:28
【问题描述】:
我们有 2 个适用于 AWS Flow Framework 的 Spring-boot 应用程序。
决策者工人:
@SpringBootApplication
public class WorkerApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(WorkerApplication.class);
ApplicationContext context = application.run(args);
WorkflowWorker workflowWorker = context.getBean(WorkflowWorker.class);
workflowWorker.start();
}
}
和Activity工人:
@SpringBootApplication
public class ActivityApplication {
public static void main(String[] args) {
SpringApplication application = new SpringApplication(ActivityApplication.class);
ApplicationContext context = application.run(args);
ActivityWorker activityWorker = context.getBean(ActivityWorker.class);
activityWorker.start();
}
}
我想知道是否可以使用 AWS Lambda 服务来实现其中的任何一个/两个。我了解如何使用 Lambda 的 Function Handler:
public interface RequestHandler<I, O> {
O handleRequest(I var1, Context var2);
}
但我不知道如何将它应用到我们的 SWF,因为工作人员 poll 来自 AWS 的任务。
谢谢!
编辑:
正如 Maxim Fateev 所回答的,可以将 lambda 任务视为活动,但不能将决策者视为活动。
当我在 ap-southeast-1 区域下的 SWF 上试用它时, 它返回一个错误:
ScheduleLambdaFunctionFailed [with EventId 5] selected
Cause: LAMBDA_SERVICE_NOT_AVAILABLE_IN_REGION
Decision Task Completed Event Id : 4
Event Timestamp: Mon Oct 03 09:58:05 GMT+800 2016
但是在区域 eu-west-1 上运行时,它成功完成了。
目前看来,swf 到 lambda 调用虽然可用,但在某些地区(如 ap-southeast-1)还不能正常工作。 这些在当前文档中没有指定。
【问题讨论】:
标签: java amazon-web-services spring-boot aws-lambda amazon-swf