

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

# 在 Step Functions 中使用 Workflow Studio 建立工作流程
<a name="workflow-studio-create"></a>

了解如何使用 Step Functions Workflow Studio 建立、編輯和執行工作流程。工作流程準備就緒後，您可以儲存、執行和匯出它。

**Topics**
+ [建立狀態機器](#workflow-studio-components-create)
+ [設計工作流程](#workflow-studio-build)
+ [執行您的工作流程](#workflow-studio-components-create-run)
+ [編輯您的工作流程](#workflow-studio-components-create-edit)
+ [匯出您的工作流程](#workflow-studio-components-create-export)
+ [使用預留位置建立工作流程原型](#workflow-studio-components-create-prototype)

## 建立狀態機器
<a name="workflow-studio-components-create"></a>

在工作流程 Studio 中，您可以選擇入門範本或空白範本來建立工作流程。

入門範本是ready-to-run的範例專案，可自動建立工作流程原型和定義，並將專案所需的所有相關 AWS 資源部署至您的 AWS 帳戶。您可以使用這些入門範本依原狀部署和執行，或使用工作流程原型來建置這些範本。如需入門範本的詳細資訊，請參閱 [使用 Step Functions 的入門範本部署狀態機器](starter-templates.md)。

使用空白範本時，您可以使用[設計](workflow-studio.md#wfs-interface-design-mode)或[程式碼](workflow-studio.md#wfs-interface-code-mode)模式來建立自訂工作流程。

### 使用入門範本建立狀態機器
<a name="wfs-create-workflow-templates"></a>

1. 開啟 [Step Functions 主控台](https://console.aws.amazon.com/states/home?region=us-east-1#/)，然後選擇**建立狀態機器**。

1. 在**選擇範本**對話方塊中，執行下列其中一項操作來選擇範例專案：
   + **Task Timer** 在依關鍵字搜尋方塊中輸入 ，然後從搜尋結果中選擇**任務計時器**。
   + 瀏覽右側窗格中**全部**列出的範例專案，然後選擇**任務計時器**。

1. 選擇 **Next** (下一步) 繼續。

1. 選擇如何使用範本：

1. 選擇**使用範本**以繼續您的選擇。

1. **執行示範** – 建立唯讀狀態機器。檢閱後，您可以建立工作流程和所有相關資源。

1. **在其中建置** – 提供可編輯的工作流程定義，您可以使用自己的資源來檢閱、自訂和部署。(**不會**自動建立相關資源，例如函數或佇列。)

### 使用空白範本建立工作流程
<a name="wfs-create-workflow-blank"></a>

當您想要從乾淨的畫布開始時，請從空白範本建立工作流程。

1. 開啟 [Step Functions 主控台](https://console.aws.amazon.com/states/home?region=us-east-1#/)。

1. 選擇 **Create state machine (建立狀態機器)**。

1. 選擇**從空白建立**。

1. 為您的狀態機器命名，然後選擇**繼續**在 Workflow Studio 中編輯您的狀態機器。

   您現在可以開始在 中設計工作流程，[設計模式](workflow-studio.md#wfs-interface-design-mode)或在 中撰寫工作流程定義[程式碼模式](workflow-studio.md#wfs-interface-code-mode)。

1. 選擇**組態**以在 中管理工作流程的組態[組態模式](workflow-studio.md#wfs-interface-config-mode)。例如，為您的工作流程提供名稱，然後選擇其類型。

## 設計工作流程
<a name="workflow-studio-build"></a>

當您知道要新增的狀態名稱時，請使用 頂端的搜尋方塊[狀態瀏覽器](workflow-studio.md#workflow-studio-components-states)來尋找狀態。否則，請在瀏覽器中尋找您需要的狀態，並將其新增至畫布。

您可以將工作流程中的狀態拖曳到工作流程中的不同位置，以重新排序。當您將狀態拖曳到畫布上時，會出現一行，顯示狀態將插入工作流程的位置，如下列螢幕擷取畫面所示：

![顯示指示狀態目的地之藍線的圖例螢幕擷取畫面。](http://docs.aws.amazon.com/zh_tw/step-functions/latest/dg/images/wfe-design-02.png)


將狀態捨棄至畫布後，其程式碼會自動產生並在工作流程定義中新增。若要查看定義，請開啟 [Inspector 面板](workflow-studio.md#workflow-studio-components-formdefinition)上的**定義**切換。您可以選擇使用內建程式碼編輯器[程式碼模式](workflow-studio.md#wfs-interface-code-mode)編輯定義。

在畫布上捨棄狀態後，您可以在右側的[Inspector 面板](workflow-studio.md#workflow-studio-components-formdefinition)面板中設定狀態。此面板包含您在畫布上放置的每個狀態或 API 動作的**組態**、**輸入**、**輸出**和**錯誤處理**索引標籤。您可以在組態索引標籤中**設定**工作流程中包含的狀態。

例如，Lambda 調用 API 動作的**組態**索引標籤提供下列選項：
+ **狀態名稱**：您可以使用自訂名稱識別狀態，或接受預設產生的名稱。
+ **API** 會顯示狀態使用的 API 動作。
+ **整合類型**：您可以選擇用於在其他 服務上呼叫 API 動作的服務整合類型。
+ **函數名稱**提供下列選項：
  +  **輸入函數名稱**：您可以輸入函數名稱或其 ARN。
  +  **在執行時間從狀態輸入取得函數名稱**：您可以使用此選項，根據您指定的路徑，從狀態輸入動態取得函數名稱。
  +  **選取函數名稱**：您可以直接從帳戶和區域中可用的函數中選取。
+ **承載** ：您可以選擇使用狀態輸入、JSON 物件或無承載做為承載傳遞至 Lambda 函數。如果您選擇 JSON，您可以同時包含靜態值和從狀態輸入中選取的值。
+ （選用） 有些狀態可以選擇**等待任務完成**或**等待回呼**。可用時，您可以選擇下列其中一種[服務整合模式](connect-to-resource.md)：
  + **未選取選項**：Step Functions 將使用[請求回應](connect-to-resource.md#connect-default)整合模式。Step Functions 會等待 HTTP 回應，然後進入下一個狀態。Step Functions 不會等待任務完成。當沒有可用的選項時，狀態將使用此模式。
  + **等待任務完成**：Step Functions 將使用[執行任務 (.sync)](connect-to-resource.md#connect-sync)整合模式。
  + **等待回呼**：Step Functions 將使用[使用任務字符等待回呼](connect-to-resource.md#connect-wait-token)整合模式。
+ （選用） 若要存取工作流程中不同 AWS 帳戶 中設定的資源，Step Functions 會提供[跨帳戶存取](concepts-access-cross-acct-resources.md)。**跨帳戶存取的 IAM 角色**提供以下選項：
  + **提供 IAM 角色 ARN**：指定包含適當資源存取許可的 IAM 角色。這些資源可在目標帳戶中使用，這是您進行跨帳戶呼叫 AWS 帳戶 的 。
  + **從狀態輸入在執行時間取得 IAM 角色 ARN**：在包含 IAM 角色的狀態 JSON 輸入中，指定現有鍵值對的參考路徑。
+ **下一個狀態**可讓您選取要轉換為下一個狀態的狀態。
+ （選用） **註解**欄位不會影響工作流程，但您可以使用它來註釋工作流程。

有些狀態會有額外的一般組態選項。例如，Amazon ECS `RunTask` 狀態組態包含填入預留位置值`API Parameters`的欄位。對於這些狀態，您可以將預留位置值取代為符合您需求的組態。

**刪除狀態**

您可以按下退格鍵，按一下滑鼠右鍵並選擇**刪除狀態**，或在[設計工具列](workflow-studio.md#wfs-interface-design-mode)上選擇**刪除**。

## 執行您的工作流程
<a name="workflow-studio-components-create-run"></a>

當您的工作流程準備就緒時，您可以執行它，並從 [Step Functions 主控台](https://console.aws.amazon.com/states/home)檢視其執行。

**在 Workflow Studio 中執行工作流程**

1. 在**設計**、**程式碼**或**組態**模式中，選擇**執行。**

   **開始執行**對話方塊會在新索引標籤中開啟。

1. 在**啟動執行**對話方塊中，執行下列動作：

   1. （選用） 輸入自訂執行名稱以覆寫產生的預設值。
**非 ASCII 名稱和記錄**  
Step Functions 接受包含非 ASCII 字元的狀態機器、執行、活動和標籤名稱。由於這類字元會阻止 Amazon CloudWatch 記錄資料，因此我們建議您僅使用 ASCII 字元，以便您可以追蹤 Step Functions 指標。

   1. （選用） 在**輸入**方塊中，輸入 JSON 格式的輸入值來執行工作流程。

   1. 選擇 **Start execution (開始執行)**。

   1. Step Functions 主控台會引導您前往標題為執行 ID 的頁面，稱為*執行詳細資訊*頁面。您可以在工作流程進行和完成後檢閱執行結果。

      若要檢閱執行結果，請在**圖形檢視**中選擇個別狀態，然後選擇[步驟詳細資訊](concepts-view-execution-details.md#exec-details-intf-step-details)窗格上的個別標籤，分別檢視每個狀態的詳細資訊，包括輸入、輸出和定義。如需您可以在執行詳細資訊頁面上檢視之*執行資訊的詳細資訊*，請參閱 [執行詳細資訊概觀](concepts-view-execution-details.md#exec-details-interface-overview)。

## 編輯您的工作流程
<a name="workflow-studio-components-create-edit"></a>

您可以在 Workflow Studio [設計模式](workflow-studio.md#wfs-interface-design-mode) 的 中以視覺化方式編輯現有的工作流程。

在 [Step Functions 主控台](https://console.aws.amazon.com/states/home)中，從**狀態機器**頁面選擇您要編輯的工作流程。工作流程會在 Workflow Studio **的設計**模式中開啟。

您也可以在 中編輯工作流程定義[程式碼模式](workflow-studio.md#wfs-interface-code-mode)。選擇**程式碼**按鈕以檢視或編輯工作流程 Studio 中的工作流程定義。

**注意**  
如果您在工作流程中看到錯誤，則必須在**設計**模式中修正這些錯誤。如果您的工作流程中存在任何錯誤，則無法切換到**程式碼**或**組態**模式。

當您儲存工作流程的變更時，您也可以選擇發佈新**版本**。使用 版本，您可以選擇執行工作流程的原始或替代版本。若要進一步了解如何使用 版本管理工作流程，請參閱 [Step Functions 工作流程中的狀態機器版本](concepts-state-machine-version.md)

## 匯出您的工作流程
<a name="workflow-studio-components-create-export"></a>

您可以匯出工作流程的 [Amazon States Language](concepts-amazon-states-language.md)(ASL) 定義和工作流程圖表：

1. 在 [Step Functions 主控台](https://console.aws.amazon.com/states/home)中選擇您的工作流程。

1. 在*狀態機器詳細資訊*頁面上，選擇**編輯**。

1. 選擇**動作**下拉式選單按鈕，然後執行下列其中一項或兩項操作：
   + 若要將工作流程圖表匯出至 SVG 或 PNG 檔案，請在**匯出圖表**下選取您想要的格式。
   + 若要將工作流程定義匯出為 JSON 或 YAML 檔案，請在**匯出定義**下，選取您想要的格式。

## 使用預留位置建立工作流程原型
<a name="workflow-studio-components-create-prototype"></a>

您可以在 中使用 Workflow Studio 或 [Workflow Studio Infrastructure Composer](use-wfs-in-app-composer.md) 來建立新工作流程的原型，其中包含名為尚不存在之資源的*預留位置資源*。

若要建立工作流程原型：

1. 登入 [Step Functions 主控台](https://console.aws.amazon.com/states/home?region=us-east-1#/)。

1. 選擇 **Create state machine (建立狀態機器)**。

1. 選擇**從空白建立**。

1. 為您的狀態機器命名，然後選擇**繼續**在 Workflow Studio 中編輯您的狀態機器。

1. Workflow Studio [的設計模式](workflow-studio.md#wfs-interface-design-mode)隨即開啟。在 Workflow Studio 中設計您的工作流程。若要包含預留位置資源：

   1. 選擇您要包含預留位置資源的狀態，然後在**組態**中：
      + 對於 Lambda 調用狀態，選擇**函數名稱**，然後選擇**輸入函數名稱**。您也可以輸入函數的自訂名稱。
      + 針對 Amazon SQS 傳送訊息狀態，選擇**佇列 URL**，然後選擇**輸入佇列 URL**。輸入預留位置佇列 URL。
      + 對於 Amazon SNS 發佈狀態，從**主題**中選擇主題 ARN。
      + 對於**動作**下列出的所有其他狀態，您可以使用預設組態。
**注意**  
如果您在工作流程中看到錯誤，則必須在**設計**模式中修正這些錯誤。如果您的工作流程中存在任何錯誤，則無法切換到**程式碼**或**組態**模式。

   1. （選用） 若要檢視工作流程的自動產生 ASL 定義，請選擇**定義**。

   1. （選用） 若要更新 Workflow Studio 中的工作流程定義，請選擇**程式碼**按鈕。
**注意**  
如果您在工作流程定義中看到錯誤，則必須在**程式碼**模式中修正錯誤。如果您的工作流程定義中存在任何錯誤，則無法切換到**設計**或**組態**模式。

1. （選用） 若要編輯狀態機器名稱，請選擇 **MyStateMachine** 預設狀態機器名稱旁的編輯圖示，然後在**狀態機器名稱**方塊中指定名稱。

   您也可以切換到 [組態模式](workflow-studio.md#wfs-interface-config-mode)來編輯預設狀態機器名稱。

1. 指定您的工作流程設定，例如狀態機器類型及其執行角色。

1. 選擇**建立**。

您現在已使用可用於原型的預留位置資源建立新的工作流程。您可以[匯出](#workflow-studio-components-create-export)工作流程定義和工作流程圖表。
+ 若要將您的工作流程定義匯出為 JSON 或 YAML 檔案，請在**設計**或**程式碼**模式中，選擇**動作**下拉式選單按鈕。然後，在**匯出定義**下，選取您要匯出的格式。您可以使用此匯出的定義做為透過 進行本機開發的起點[AWS Toolkit for Visual Studio Code](https://docs.aws.amazon.com/toolkit-for-vscode/latest/userguide/building-stepfunctions.html)。
+ 若要將工作流程圖表匯出至 SVG 或 PNG 檔案，請在**設計**或**程式碼**模式中，選擇**動作**下拉式選單按鈕。然後，在**匯出定義**下，選取您想要的格式。