

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

# 亚马逊 SWF 入门
<a name="swf-sns-tutorial"></a>

您可以开始使用以下 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](https://www.amazonaws.cn/sdkforruby/)

**注意**  
本教程使用了 适用于 Ruby 的 Amazon SDK，但我们建议您使用[Amazon Flow Framework 适用于 Java 的](https://docs.amazonaws.cn/amazonswf/latest/awsflowguide/)。

**Topics**
+ [关于工作流程](#swf-sns-tutorial-about-the-workflow)
+ [先决条件](#swf-sns-tutorial-prerequisites)
+ [教程步骤](#swf-sns-tutorial-steps)
+ [订阅工作流程教程第 1 部分：将 Amazon SWF 与 适用于 Ruby 的 Amazon SDK](swf-sns-tutorial-setup-swf.md)
+ [订阅工作流程教程第 2 部分：实现工作流程](swf-sns-tutorial-implementing-workflow.md)
+ [订阅工作流教程第 3 部分：实现活动](swf-sns-tutorial-implementing-activities.md)
+ [订阅工作流程教程第 4 部分：实现活动任务轮询器](swf-sns-tutorial-implementing-activities-poller.md)
+ [订阅工作流程教程：运行工作流程](swf-sns-tutorial-running-the-workflow.md)

## 关于工作流程
<a name="swf-sns-tutorial-about-the-workflow"></a>

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

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

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

1. 等待用户确认订阅。

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

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

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

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

## 先决条件
<a name="swf-sns-tutorial-prerequisites"></a>

要按本教程进行操作，您需要以下各项：
+ [Amazon Web Services 账户](https://portal.amazonaws.cn/gp/aws/developer/registration/index.html)
+ [Ruby 解释器](https://www.ruby-lang.org/en/downloads/)
+ [适用于 Ruby 的 Amazon SDK](https://www.amazonaws.cn/sdkforruby/)

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

## 教程步骤
<a name="swf-sns-tutorial-steps"></a>

本教程分为以下几步：

1. [订阅工作流程教程第 1 部分：将 Amazon SWF 与 适用于 Ruby 的 Amazon SDK](swf-sns-tutorial-setup-swf.md)

1. [订阅工作流程教程第 2 部分：实现工作流程](swf-sns-tutorial-implementing-workflow.md)

1. [订阅工作流教程第 3 部分：实现活动](swf-sns-tutorial-implementing-activities.md)

1. [订阅工作流程教程第 4 部分：实现活动任务轮询器](swf-sns-tutorial-implementing-activities-poller.md)

1. [订阅工作流程教程：运行工作流程](swf-sns-tutorial-running-the-workflow.md)