Amazon Simple Workflow Service
开发人员指南 (API Version 2012-01-25)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

教程: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 服务,因此可在任何有 Internet 连接的地方发起与 Amazon SWF 的通信。在这种情况下,我们将使用 Amazon SNS 通过电子邮件和/或手机短信与用户通信。

本教程使用适用于 Ruby 的 AWS 开发工具包访问 Amazon SWF 和 Amazon SNS,但另有许多开发方法(包括 AWS Flow Framework for Ruby)可供选择,通过这些方法可更简便地与 Amazon SWF 协作和通信。

有关 Amazon SWF 开发选项的完整列表,请参阅开发选项

本节内容:

关于工作流程

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

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

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

  3. 等待用户确认订阅。

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

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

由于每一步都依赖于上一步生成的数据(必须先有终端节点,然后才能让其订阅主题,并且必须先有主题订阅,然后才能等待确认等)。本教程还将涵盖在完成时可怎样提供活动结果以及如何将输入传递给所安排的任务。Amazon SWF 处理活动与工作流程之间的协作和信息传递,反之亦然。

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

先决条件

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

如果已设置好这些,即准备就绪,可以继续。如果不想运行示例,仍可按本教程操作 - 本教程中的很多内容都讲述了如何使用 Amazon SWF 和 Amazon SNS,无论您使用何种开发方法都是如此。

下载源代码

可从以下网址下载本教程的完整源代码:https://s3.amazonaws.com/codesamples/ruby/swf_sns_sample.zip

提示

即使您有意将本教程中的代码直接键入(或剪切并粘贴)到您自己的源文件中,准备好下载的源代码以供与您自己的代码进行比较也有助于发现并解决后续过程中出现的问题。

教程步骤

本教程分为以下几步: