

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

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

*狀態*是狀態機器中的元素。狀態會使用自身的*名稱*來稱呼，這可以是任何字串，但在整個狀態機器範圍內必須是唯一的。

狀態會從調用或先前的狀態取得輸入。狀態可以篩選輸入，然後操作傳送至下一個狀態的輸出。

以下是名為 的範例狀態`HelloWorld`，可叫用 AWS Lambda函數。

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

個別狀態可以根據其輸入做出決策、從這些輸入執行動作，並將輸出傳遞給其他狀態。在 中AWS Step Functions，您可以使用 Amazon States Language (ASL) 定義工作流程。Step Functions 主控台提供狀態機器的圖形表示，以協助視覺化應用程式的邏輯。

下列螢幕擷取畫面顯示工作流程 Studio 中一些最熱門**的動作**和七個**流程**狀態：

![顯示 Workflow Studio 中熱門動作和流程狀態的說明性螢幕擷取畫面](http://docs.aws.amazon.com/zh_tw/step-functions/latest/dg/images/wfs-actions-flow-panel.png)


狀態有許多常見的功能：
+ 指出其狀態類型的`Type`欄位。
+ 選用`Comment`欄位，用於保留狀態的人類可讀註解或描述。
+ 每個狀態 ( `Succeed`或 `Fail` 狀態除外） 都需要一個`Next`欄位，指定工作流程中的下一個狀態。 `Choice` 狀態實際上在每個選擇規則`Next`中可以有多個狀態。或者，狀態可以透過將 `End` 欄位設定為 true 來成為結束狀態。

某些狀態類型需要額外的欄位，或者可能會重新定義常見欄位的用法。

**存取工作流程的日誌資訊**
+ 建立並執行標準工作流程之後，您可以在 Step Functions 主控台中檢視執行詳細資訊頁面，以存取每個狀態、其輸入和輸出、作用中的時間長度的相關資訊。
+ 建立 和 Express Workflow 執行之後，如果啟用記錄，您可以在 Step Functions 主控台或 Amazon CloudWatch Logs 中查看執行歷史記錄。

 如需有關檢視和偵錯執行的資訊，請參閱 [檢視工作流程執行](concepts-view-execution-details.md)和 [使用 CloudWatch Logs 在 Step Functions 中記錄執行歷史記錄](cw-logs.md)。

## 工作流程狀態的參考清單
<a name="states-ref-list"></a>

狀態在 Workflow Studio 中分隔為**動作**，也稱為**任務狀態**和七個**流程狀態**。使用**任務狀態**或 Workflow Studio 中的動作，您可以呼叫第三方服務、叫用 函數，並使用數百個AWS服務端點。透過**流程狀態**，您可以指示和控制您的工作流程。所有狀態都會從先前的狀態取得輸入，許多狀態都會提供輸入篩選，並篩選/轉換傳送至工作流程中下一個狀態的輸出。
+ [任務工作流程狀態](state-task.md)：新增要由狀態機器執行的單一工作單位。
+ [選擇工作流程狀態](state-choice.md)：在工作流程的執行分支之間新增選擇。
+ [平行工作流程狀態](state-parallel.md)：將平行執行分支新增至工作流程。
+ [映射工作流程狀態](state-map.md)：動態重複輸入陣列中每個元素的步驟。與`Parallel`流程狀態不同，`Map`狀態會針對狀態輸入中陣列的多個項目執行相同的步驟。
+ [傳遞工作流程狀態](state-pass.md)：將狀態輸入傳遞至輸出。或者，篩選、轉換並將固定資料新增至輸出。
+ [等待工作流程狀態](state-wait.md)：暫停您的工作流程一段時間，或直到指定的時間或日期。
+ [工作流程狀態成功](state-succeed.md)：成功停止工作流程。
+ [失敗的工作流程狀態](state-fail.md)：因失敗而停止工作流程。