本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
Amazon SWF 和 Amazon SNS 的订阅工作流教程
本部分提供的教程介绍了如何创建一个 Amazon SWF 工作流应用程序,该应用程序由四个按顺序运行的活动组成。其中还涵盖:
-
设置默认和执行时间工作流程和活动选项。
-
轮询 Amazon SWF 以查找决策和活动任务。
-
通过 Amazon SWF 在活动和工作流之间传递数据。
-
等待人工任务并从活动任务向 Amazon SWF 报告检测信号。
-
使用 Amazon SNS 创建主题、让用户订阅主题并将消息发布到订阅的端点。
您可以同时使用 Amazon Simple Workflow Service (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 的。
主题
关于工作流程
我们将开发的工作流程由以下四个主要步骤组成:
-
向用户获取订阅地址(电子邮件或手机短信)。
-
创建 SNS 主题,然后让所提供的终端节点订阅该主题。
-
等待用户确认订阅。
-
如果用户确认,则向该主题发布一条祝贺消息。
这些步骤包括完全自动化的活动(第 2 步和第 4 步)和其他活动(第 1 步和第 3 步),后者要求工作流等待工作线程向活动提供某些数据,然后工作流才能前进。
每一步都依赖于上一步生成的数据 (必须先有终端节点,然后才能让其订阅主题,并且必须先有主题订阅,然后才能等待确认等)。本教程还将介绍如何在活动完成后提供结果,以及如何将输入传递给正在计划的任务。Amazon SWF 负责协调活动和工作流之间的信息传递(反之亦然)。
我们还使用键盘输入和 Amazon SNS 来处理 Amazon SWF 与向工作流提供数据的真人用户之间的通信。实际上,您可以使用多种不同的方法与真人用户通信,但 Amazon SNS 提供了一种非常简便的方式,可以使用电子邮件或手机短信向用户通知工作流中的事件。
先决条件
要按本教程进行操作,您需要以下各项:
如果已设置好这些,即准备就绪,可以继续。如果您不想运行该示例,仍然可以按照教程进行操作,无论您选择哪种开发选项,本教程中的大部分内容都适用于使用 Amazon SWF 和 Amazon SNS。
教程步骤
本教程分为以下几步: