亚马逊 SWF 入门 - Amazon Simple Workflow Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

亚马逊 SWF 入门

您可以开始使用以下 Amazon Simple Workflow Service 工作流程应用程序,该应用程序由按顺序运行的四个活动组成。本教程还涵盖以下主题:

  • 设置默认执行时间工作流程和活动选项。

  • 轮询 Amazon SWF 以查找决策和活动任务。

  • 通过 Amazon SWF 在活动和工作流之间传递数据。

  • 等待人工任务并从活动任务向 Amazon SWF 报告检测信号。

  • 使用 Amazon SNS 创建主题、让用户订阅主题并将消息发布到订阅的端点。

您可以同时使用 Amazon SWF 和亚马逊简单通知服务 (Amazon SNS) Simple Notification SERVICE 来模拟 “人工任务” 工作流程,即要求人类工作人员执行某些操作,然后与 Amazon SWF 通信以启动工作流程中的下一个活动。

由于 Amazon SWF 是一项基于云的 Web 服务,因此与 Amazon SWF 的通信可在任何有互联网连接的地方进行。在这种情况下,我们将使用 Amazon SNS 通过电子邮件和/或手机短信与用户通信。

本教程使用访问亚马逊 SWF 和 Amazon SNS,但有许多开发选项可供选择,包括 Amazon Flow Framework 适用于 Ruby 的,它可以更轻松地与 Amazon SWF 进行协调和沟通。适用于 Ruby 的 Amazon SDK

注意

本教程使用了 适用于 Ruby 的 Amazon SDK,但我们建议您使用Amazon Flow Framework 适用于 Java 的

关于工作流程

我们将开发的工作流程由以下四个主要步骤组成:

  1. 向用户获取订阅地址(电子邮件或手机短信)。

  2. 创建 SNS 主题,然后让所提供的终端节点订阅该主题。

  3. 等待用户确认订阅。

  4. 如果用户确认,则向该主题发布一条祝贺消息。

这些步骤包括完全自动化的活动(第 2 步和第 4 步)和其他活动(第 1 步和第 3 步),后者要求工作流等待工作线程向活动提供某些数据,然后工作流才能前进。

每一步都依赖于上一步生成的数据 (必须先有终端节点,然后才能让其订阅主题,并且必须先有主题订阅,然后才能等待确认等)。本教程还将介绍如何在活动完成后提供结果,以及如何将输入传递给正在计划的任务。Amazon SWF 负责协调活动和工作流之间的信息传递(反之亦然)。

我们还使用键盘输入和 Amazon SNS 来处理 Amazon SWF 与向工作流提供数据的真人用户之间的通信。实际上,您可以使用多种不同的方法与真人用户通信,但 Amazon SNS 提供了一种非常简便的方式,可以使用电子邮件或手机短信向用户通知工作流中的事件。

先决条件

要按本教程进行操作,您需要以下各项:

如果已设置好这些,即准备就绪,可以继续。如果您不想运行该示例,仍然可以按照教程进行操作,无论您选择哪种开发选项,本教程中的大部分内容都适用于使用 Amazon SWF 和 Amazon SNS。

教程步骤

本教程分为以下几步: