使用工作流程 - AWS Step Functions

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

使用工作流程

了解如何使用 Step Functions 工作流程 Studio 建立、編輯和執行工作流程。工作流程準備就緒後,您可以將其匯出。您也可以使用工作流程 Studio 進行快速原型製作。

建立工作流程

在 Workflow Studio 中,您可以選擇初學者範本,或選擇空白範本以從頭開始建立工作流程。對於空白範本,您可以使用「設計」或「程式」模式來建立工作流程。

入門範本是一個 ready-to-run 範例專案,可自動建立工作流程 proptotype 和定義,並將專案所需的所有相關 AWS 資源部署到. AWS 帳戶您可以使用這些初學者範本依原樣部署和執行它們,或使用工作流程原型來建置它們。如需有關初學者範本的更多資訊,請參閱Step Functions 的範例專案

使用初學者範本建立工作流程

  1. 開啟 Step Functions 主控台,然後選擇建立狀態機器

  2. 在 [選擇範本] 對話方塊中,執行下列其中一項作業以選擇範例專案,例如 [工作計時器] 範例專案:

    • Task Timer在 [依關鍵字搜尋] 方塊中輸入,然後從傳回的搜尋結果中選擇 [工作計時器]。

    • 瀏覽右窗格中「全部」下列出的範例專案,然後選擇「工作計時器」。

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

  4. Step Functions 會列出您選取的範例專案中 AWS 服務 使用的項目。它也會顯示範例專案的工作流程圖表。將此項目部署到您的項目中, AWS 帳戶 或將其用作構建自己的項目的起點。根據您想要的進行方式,選擇 [執行示範] 或 [在其上建置]。

  5. 選擇「使用範本」繼續進行選取。

  6. 執行以下任意一項:

    • 如果您選取「在其上建置」,「Step Functions」會為您選取的範例專案建立工作流程原型。Step Functions 不會部署工作流程定義中列出的資源。在中設計模式,從拖放狀態狀態瀏覽器以繼續建立您的工作流程原型。或切換至以程式碼模式更新工作流程的 Amazon States Language (ASL) 定義。

      重要

      請記得在執行工作流程之前,更新範例專案中使用之資源的預留位置 Amazon 資源名稱 (ARN)。

    • 如果您選取 [執行示範],Step Functions 會建立唯讀範例專案,該專案使用 AWS CloudFormation 範本將該範本中列出的 AWS 資源部署到您的 AWS 帳戶.

      提示

      若要檢視範例專案的狀態機定義,請選擇 [程式碼]。

      準備就緒後,請選擇 [部署並執行] 以部署範例專案並建立資源。

      注意

      建立這些資源和相關 IAM 許可最多可能需要 10 分鐘的時間。部署資源時,您可以開啟 CloudFormation Stack ID 連結以查看正在佈建的資源。

      重要

      CloudFormation 範本中使用的每項服務均需支付標準費用。

使用空白範本建立工作流程

  1. 開啟「Step Functions」主控台

  2. 選擇 Create state machine (建立狀態機器)

  3. 在「選擇範本」對話方塊中,選取「空白」。

  4. 選擇選取。這會在設計模式中開啟工作流程工作室

    您現在可以開始在中設計工作流程,設計模式或在中編寫工作流程定義程式碼模式

  5. 選擇「Config 定」以管理中工作流程的組態Config 模式。例如,提供工作流程的名稱並選擇其類型。

設計工作流程

如果您知道要新增的狀態名稱,請使用頂端的搜尋方塊,在的「動作」和「流程」標籤中尋找該狀態設計模式狀態瀏覽器


          Step Functions 工作流程 Studio 搜索

否則,請從狀態瀏覽器中選擇狀態,然後將其拖放到畫布上,將其放置在工作流程中所需的位置。您也可以將工作流程中的狀態拖曳至工作流程中的其他位置來重新排序狀態。當您將狀態拖曳到畫布上時,會出現一條線條,您可以將其放置在工作流程中的任何位置。將狀態拖放到畫布上後,其代碼將自動生成並添加到您的工作流程定義中。若要查看定義,請開啟「檢查 Inspector」面板上的「定義」切換開關。若要編輯工作流程定義,請選擇提供整合式程式碼編輯器的項目程式碼模式


          Step Functions 工作流工作室添加狀態到畫布

將狀態拖放到畫布上後,您可以在右側的Inspector面板中對其進行配置。此面板包含您放在畫布上的每個狀態或 API 動作的「組態」、「輸入」、「輸」和「錯誤處理」索引標籤。您可以在「組態」索引標籤中配置包含在工作流程中的狀態。例如,Lambda 叫用 API 動作的「組態」索引標籤包含下列選項:


          組態選項
  1. 態名稱可識別狀態。您可以使用自己的名稱或接受預設產生的名稱。

  2. API 顯示狀態使用的 API 操作。

  3. 整合類型」下拉式清單提供選項,讓您選擇 Step Functions 中可用的服務整合類型。您選擇的整合類型可用來呼叫工作流程 AWS 服務 中特定項目的 API 動作。

  4. 函數名稱提供的選項可用於:

    • 輸入函數名稱:您可以輸入函數名稱或其 ARN。

    • 在運行時從狀態輸入獲取函數名稱:您可以使用此選項根據指定的路徑從狀態輸入動態獲取函數名稱。

    • 選擇功能名稱:您可以直接從您的帳戶和地區可用的功能中選擇。

  5. 承載」可讓您從下列選項中選取:

    • 使用狀態輸入作為有效負載:您可以使用此選項將狀態的輸入作為提供的有效負載傳遞給 Lambda 函數。

    • 輸入您自己的承載:您可以使用此選項建構 JSON 物件,以作為承載傳遞至 Lambda 函數。此 JSON 可包含靜態值和從狀態輸入中選取的值。

    • 無承載:如果您不想將任何承載傳遞給 Lambda 函數,則可以使用此選項。

  6. (選擇性) 某些狀態可以選取 [等待工作完成] 或 [等待回呼]。如果可用,這些選項會選取下列其中一個服務整合模式

    • 未選取任何選項:Step Functions 將使用請求回應整合模式。Step Functions 將等待 HTTP 響應,然後進展到下一個狀態。Step Functions 不會等待工作完成。當沒有可用的選項時,狀態將使用此模式。

    • 等待任務完成:Step Functions 將使用執行任務 (.sync)集成模式。

    • 等待回調:Step Functions 將使用等候傳回任務字符的回呼集成模式。

  7. (選擇性) 若要存取工作流程 AWS 帳戶 中不同設定的資源,Step Functions 提供跨帳戶存取權跨帳戶存取的 IAM 角色提供下列選項:

    • 提供 IAM 角色 ARN:指定包含適當資源存取權限的 IAM 角色。這些資源可在目標帳戶中使用,目標帳戶是 AWS 帳戶 您進行跨帳戶呼叫的帳戶。

    • 運行時從狀態輸入獲取 IAM 角色 ARN:在包含 IAM 角色的狀態的 JSON 輸入中指定現有鍵值對的參考路徑。

  8. 下一個狀態」可讓您選取要轉換到下一個狀態的狀態。

  9. (選擇性)「註解」欄位可用來新增您自己的註解。它不會影響工作流程,但可用於註釋您的工作流程。

某些狀態會有更多通用的組態選項。例如,Amazon ECS RunTask 狀態組態包含填入預留位置值的API Parameters欄位。


          Amazon ECS RunTask 狀態的組態選項

對於這些狀態,您可以使用適合您需求的組態來取代預留位置值。

若要刪除狀態,您可以使用退格鍵,按一下滑鼠右鍵並選擇「刪除」狀態,或選擇「設計」工具列上的「刪除」。


          刪除狀態

隨著工作流程的增長,它可能不適合在畫布上。您可以:

  1. 使用側面板上的控制項,調整面板的大小或關閉面板。

  2. 使用頂端的 [設計] 工具列控制項可放大或縮小工作流程圖表。Canvas


          畫布控件

執行工作流程

使用工作流程 Studio 建立或編輯工作流程之後,您可以執行它,並在 Step Functions 式主控台中檢視其執行。

在工作流程工作室中執行工作流程
  1. 在「設計」、「程式」或「Config」模式中,選擇「執行」。

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

  2. 在 [開始執行] 對話方塊中,執行下列動作:

    1. (選擇性) 若要識別您的執行項目,您可以在「名稱」(Name) 方塊中指定執行項目的名稱。默認情況下,Step Functions 自動生成一個唯一的執行名稱。

      注意

      Step Functions 可讓您建立狀態機器、執行項目和活動的名稱,以及包含非 ASCII 字元的標籤。這些非 ASCII 名稱不適用於 Amazon CloudWatch。若要確保您可以追蹤 CloudWatch 量度,請選擇僅使用 ASCII 字元的名稱。

    2. (選擇性) 在「入」方塊中,以 JSON 格式輸入輸入值以執行工作流程。

    3. 選擇 Start execution (開始執行)

    4. Step Functions 主控台會將您導向至標題為執行 ID 的頁面。此頁面稱為「執行詳細資訊」頁面。在此頁面上,您可以在執行進行時或完成之後複查執行結果。

      若要複查執行結果,請在「圖形」檢視中選擇個別狀態,然後選擇步驟詳情窗格上的個別索引標籤,分別檢視每個狀態的詳細資訊,包括輸入、輸出和定義。如需有關可在「執行詳細資訊」頁面檢視之執行資訊的詳細資訊,請參閱執行詳細資訊頁面 — 介面概觀

編輯工作流程

您可以在工作流程 Studio 中以視覺方式編輯現有設計模式的工作流程。您也可以在工作流程 Studio 中編輯工程式碼模式作流程定義。

若要編輯現有的工作流程:

  1. 開啟「Step Functions」主控台

  2. 在 [狀態機器] 頁面上,選擇您要編輯的工作流程。

  3. 狀態機器詳細資料頁面上,選擇編輯

  4. 工作流程會以工作流程 Studio 的 [設計] 模式開啟。視需要編輯工作流程。

    
              在設計模式中編輯工作流程
    注意

    如果您在工作流程中看到錯誤,則必須在「設計」模式中修正錯誤。如果工作流程中存在任何錯誤,則無法切換到「代碼」或「Config」模式。

  5. (選擇性) 選擇 [程式] 按鈕以檢視或編輯工作流程 Studio 中的工作流程定義。

    
              在程式碼模式中檢視或編輯工作流程
  6. 完成後,選擇 [儲存] 以儲存更新的工作流程。

  7. (選擇性) 若要執行更新的工作流程,請選擇「執行」。開始執行對話方塊會在新索引標籤中開啟。

匯出工作流程

您可以匯出工作流程的 Amazon States Language (ASL) 定義和工作流程圖表:

  1. Step Functions 主控台中選擇您的工作流程。

  2. 狀態機器詳細資料頁面上,選擇編輯

  3. (選擇性) 您的工作流程會在工作流程 Studio 的設計模式中開啟。在「設計」模式中編輯工作流程,或切換至「程式」模式。

  4. 選擇「作業」 下拉式按鈕,然後執行下列其中一項或兩項作業:

    • 若要將工作流程圖形匯出為 SVG 或 PNG 檔案,請在「匯出圖形」下選取您要的格式。

    • 若要將工作流程定義匯出為 JSON 或 YAML 檔案,請在 [匯出定義] 下選取您想要的格式。

建立工作流程原型

您可以使用工作流程 Studio 來建立包含預留位置資源的新工作流程原型。您也可以使用中的工作流程 Studio 來建置工作流程Application Composer。若要建立原型:

  1. 登入 Step Functions 主控台

  2. 選擇 Create state machine (建立狀態機器)

  3. 在「選擇範本」對話方塊中,選取「空白」。

  4. 選擇選取。這會在設計模式中開啟工作流程工作室

  5. 工作流程工作室的設計模式隨即開啟。在工作流程工作室設計工作流程。若要包含預留位置資源:

    1. 選擇您要包含預留位置資源的狀態,然後在 [設定] 中:

      • 對於 Lambda 叫用狀態,請選擇函數名稱,然後選擇輸入函數名稱。您也可以輸入函數的自訂名稱。

      • 對於 Amazon SQS 傳送訊息狀態,請選擇佇列網址,然後選擇 [輸入佇列網址]。輸入預留位置佇列 URL。

      • 對於 Amazon SNS 發佈狀態,請從主題中選擇一個主題 ARN。

      • 對於「動作」 下列出的所有其他狀態,您可以使用預設組態。

      注意

      如果您在工作流程中看到錯誤,則必須在「設計」模式中修正錯誤。如果工作流程中存在任何錯誤,則無法切換到「代碼」或「Config」模式。

    2. (選擇性) 若要檢視工作流程的自動產生 ASL 定義,請選擇「定義」。

    3. (選擇性) 若要更新工作流程 Studio 中的工作流程定義,請選擇 [程式] 按鈕。

      注意

      如果您在工作流程定義中看到錯誤,則必須在「程式」模式中修正錯誤。如果工作流程定義中存在任何錯誤,則無法切換到「設計」或「Config 態」模式。

  6. (選擇性) 若要編輯狀態機器名稱,請選擇預設狀態機器名稱旁的編輯圖示,MyStateMachine然後在 [狀態機器名稱] 方塊中指定名稱

    您也可以切換Config 模式至以編輯預設狀態機器名稱。

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

  8. 選擇建立

您現在已建立新的工作流程,其中包含可用於製作原型的預留位置資源。您可以匯出工作流程定義和工作流程圖表。

  • 若要將工作流程定義匯出為 JSON 或 YAML 檔案,請在 [設計] 或 [程式] 模式下,選擇 [動作] 下拉式按鈕。然後,在「匯出定義」下,選取您要匯出的格式。您可以使用此匯出的定義做為本機開發的起點AWS Toolkit for Visual Studio Code

  • 若要將工作流程圖形匯出為 SVG 或 PNG 檔案,請在「設計」或「程式」模式下,選擇「動作」 下拉式按鈕。然後,在「匯出定義」下,選取所需的格式。