Amazon SWF 和 Amazon SNS 的订阅工作流教程 - Amazon Simple Workflow Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

Amazon SWF 和 Amazon SNS 的订阅工作流教程

本部分提供的教程介绍了如何创建一个 Amazon SWF 工作流应用程序,该应用程序由四个按顺序运行的活动组成。其中还涵盖:

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

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

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

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

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

您可以同时使用 Amazon Simple Workflow Service (Amazon SWF)Amazon Simple Notification Service (Amazon SNS) 来模拟“人工任务”工作流。在此类工作流中,人类工作人员需要执行某些操作,然后与 Amazon SWF 通信以启动工作流中的下一个活动。

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

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

注意

本教程使用 Amazon SDK for Ruby,但我们建议您使用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。

教程步骤

本教程分为以下几步: