为什么选择 SWF?
Amazon Simple Workflow Service(Amazon SWF)帮助开发人员构建、运行和扩展平行或有序运行的后台作业。您不妨将 Amazon SWF 当作是云中完全托管的状态追踪器和任务协调器。
如果应用步骤耗时超过 500 毫秒,您就需要追踪处理状态,并且如果任务失败则需要恢复和重试,Amazon SWF 可为您提供帮助。
如果您寻求一种低代码可视化流程服务,用于编排 AWS 服务、自动化业务流程或构建无服务器应用程序,了解关于 AWS Step Functions 的详情。
优势
Amazon SWF 产品详情
利用 Amazon SWF 让您轻松管理应用程序的工作流程。
Amazon SWF 功能
Amazon SWF 服务充当您的应用程序各个不同组件的协调中心:
- 维护应用程序状态
- 跟踪工作流程执行,并记录其进度
- 托管和分派任务
- 控制各个应用程序主机将被指派执行什么任务
要使用 Amazon SWF,您只需:
- 使用 AWS 管理控制台 或 Amazon SWF API 指定工作存储器的名称。
- 使用 Amazon SWF API“启动”新的工作存储器,产生称为“工作流执行”的特定工作流任务序列,使其启动。
- 从您的工作人员计算机使用 Amazon SWF API(“工作人员”指的是处理特定任务的应用程序的组员),确定任务顺序,管理条件流程,并执行工作流程执行的循环。
- 利用工作人员的计算机使用 Amazon SWF API,请求和执行云中或本地的工作流任务。
- 在 AWS 管理控制台中监控工作流执行和相关任务的状态和进度。
详细说明
Amazon SWF 是一个全方位托管的工作流服务,用于构建可扩展、灵活的应用程序。Amazon SWF 提供了简单 API 调用,它们可以通过任何语言编写运行代码,并可在 EC2 实例上运行,或在全球各地能够访问 Internet 的计算机上运行。
Amazon SWF 是一个协调中心,能与您的应用程序主机进行交互。利用Amazon SWF您可创建所需的工作流程,以及相关的任务和您想应用及存储的任何条件逻辑。每次执行工作流程时,它会被视为一个独特的工作流程执行。您需对应用程序组件进行编程来请求工作流执行中要执行的各种任务,Amazon SWF 会协调这些任务,使其按照您指定的顺序在您的主机(无论主机位于云中还是在本地)上完成这些任务。应用程序通过 API 与 Amazon SWF 通信,会记录下任务是成功还是失败的情况。Amazon SWF 会继续执行任务序列,根据您的业务逻辑,将下一个工作流程任务分配给应用程序主机或重新运行失败的任务。
登录 AWS 管理控制台可开始运行Amazon SWF 工作流程执行。此外,也可通过 Amazon SWF API 启动工作流程执行。Amazon SWF 采用简单的 Web 服务接口,不仅易于使用,而且非常灵活:
- StartWorkflowExecution:启动工作流任务序列,并将第一个任务提供给您的应用程序主机。
- DescribeWorkflowExecution:展现工作流执行和任务的状态。
- PollForActivityTask:应用程序主机(云中或本地)以连续循环的模式请求和执行工作流程任务。
- RespondActivityTaskCompleted:应用程序主机告知 Amazon SWF 它已成功完成某一任务。Amazon SWF 接着将下一个任务提供给应用程序主机,以继续工作流程执行。
- TerminateWorkflowExecution:停止推进特定的工作流程执行。Amazon SWF 不再将这一特定工作流程执行中的任务提供给应用程序主机。
预期用途和限制
使用本服务需遵循 Amazon Web Services 客户协议。
使用案例
AWS Flow Framework
AWS Flow Framework 是一组方便易用的库的集合,有了这些库,您可以更加轻松快速地使用 Amazon Simple Workflow 构建应用程序。
工作原理
AWS Flow Framework 具有一个直观的编程模型,借助此模型可以轻松构建跨多台计算机执行工作的应用程序。通过此框架,您可以快速创建任务、协调任务,并指定这些任务之间的相互依存方式,就像您在典型程序中所做的那样。例如,您可以运行“远程”计算机上应用程序中的方法,只需在托管于单独的“本地”计算机上的应用程序逻辑中调用此方法即可。AWS Flow Framework 可以通过 Amazon Simple Workflow Service 存储的信息,处理执行远程方法所需的复杂往来操作,并将其结果返回到本地应用程序。您可以使用所执行方法的输出来连接您的逻辑中相互依赖的各个独立部分。通过此框架,您可以使用简单的语法,通过简单的“阻止并等待回调”方法来表达各方法之间的依赖关系。另外,在此框架中,您还可以像处理本地错误那样处理远程计算机上的故障,同时还可以轻松地定义当应用程序中的重要方法发生故障时应如何重试这些方法。
- 从适用于 Java 的 AWS SDK 中获取
- 观看相关 Java 版本的网络研讨会
- 阅读开发人员指南
- 参阅 API 参考
请注意
适用于 Ruby 的 AWS Flow Framework 已不再进行主动开发。虽然现有代码将继续正常工作,但将不会推出新功能或新版本。适用于 Ruby 的 Flow Framework 的源代码将继续在 AWS SWF GitHub 档案中提供。如果您基于 Ruby 的 Simple Workflow 应用程序正在发展和变化,您可能需要考虑一些选项,包括迁移到 AWS Step Functions 或使用原生 Simple Workflow API。更多详细信息,请参阅 AWS Simple Workflow 开发人员指南。
使用 AWS Flow Framework,您可以编写简单的代码,让框架中预先构建的对象和类来处理 Amazon Simple Workflow API 的详细信息。AWS Flow Framework 可以创建和执行您应用程序的步骤,跟踪其进度、允许您定义步骤失败的重试规则,等等。同时,Amazon Simple Workflow Service 可以保持您应用程序的执行状态,将任务分发给可处理任务的工作人员,并保留有关您的所有任务的审计历史记录。
AWS Flow Framework 是 Java 开源,由 AWS 开发和管理。您可以使用下面的链接获取库、源代码、文档、示例等等。