

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

# 探索要在 Step Functions 中使用的工作流程状态
<a name="workflow-states"></a>

*状态*是状态机中的元素。状态通过其*名称* 来引用，这可以是任意字符串，但在整个状态机的范围内必须唯一。

状态从调用或前一个状态中获取输入。状态可以筛选输入，然后处理发送到下一个状态的输出。

以下是一个调用 AWS Lambda 函数的名为 `HelloWorld` 的示例状态。

```
"HelloWorld": {
  "Type": "Task",
  "Resource": "arn:aws:lambda:region:123456789012:function:HelloFunction",
  "Next": "AfterHelloWorldState",
  "Comment": "Run the HelloWorld Lambda function"
}
```

单个状态可以根据其输入做出决定、执行操作，并将输出传递给其他状态。在中AWS Step Functions，您可以使用 Amazon States 语言 (ASL) 定义工作流程。Step Functions 控制台提供了状态机的图形表示，以帮助可视化您的应用程序逻辑。

以下屏幕截图显示了工作流程工作室中一些最受欢迎的**操作**和七个**流程**状态：

![\[说明性屏幕截图显示了工作流程工作室中的热门操作和流程状态\]](http://docs.aws.amazon.com/zh_cn/step-functions/latest/dg/images/wfs-actions-flow-panel.png)


状态有许多共同特征：
+ `Type` 字段指示状态是什么类型。
+ 可选的 `Comment` 字段以人类可读的格式存放有关状态的评论或说明。
+ 每个状态（`Succeed` 或 `Fail` 状态除外）需要一个 `Next` 字段，用于指定工作流程中的下一个状态。`Choice` 状态实际上在每条 Choice 规则中可以有超过一个 `Next`。或者，通过将 `End` 字段设置为 true，状态可以变为终止状态。

某些状态类型需要额外的字段，也可能重新定义常见字段用法。

**访问工作流程的日志信息**
+ 创建并运行标准流后，您可以通过在 Step Functions 控制台中查看执行详细信息页面，来访问有关各个状态、其输入和输出、何时活动以及活动时长的信息。
+ 在您创建了 Express Workflow 执行并启用了日志记录后，您可以在 Step Functions 控制台或 Amazon CloudWatch Logs 中查看执行历史记录。

 有关查看和调试执行的信息，请参阅[查看工作流程运行](concepts-view-execution-details.md)和 [在 Step Functions 中使用 CloudWatch 日志记录执行历史记录](cw-logs.md)。

## 工作流程状态参考列表
<a name="states-ref-list"></a>

在工作流程工作室中，状态分为**操作**（也称为**任务状态**）和七个**流程状态**。使用**任务状态**或 Workflow Studio 中的操作，您可以调用第三方服务、调用函数和使用数百个AWS服务端点。使用**流程状态**，可以指导和控制工作流程。所有状态都接受前一个状态的输入，许多状态都提供输入筛选，以及 filtering/transformation 传递到工作流程中下一个状态的输出。
+ [Task 工作流程状态](state-task.md)：添加由状态机执行的单个工作单元。
+ [Choice 工作流程状态](state-choice.md)：在工作流的执行分支之间添加选择。
+ [Parallel 工作流程状态](state-parallel.md)：为工作流添加并行执行分支。
+ [Map 状态工作流程。](state-map.md)：针对输入数组每个元素的动态迭代步骤。与 `Parallel` 流状态不同，`Map` 状态将对状态输入中数组的多个条目执行相同的步骤。
+ [Pass 工作流程状态](state-pass.md)：将状态输入传递到输出。（可选）筛选、转换固定数据并将其添加到输出。
+ [Wait 工作流程状态](state-wait.md)：将工作流程暂停一段时间或直到指定的时间或日期。
+ [Succeed 工作流程状态](state-succeed.md)：成功后停止工作流。
+ [Fail 工作流程状态](state-fail.md)：因故障而停止工作流。