

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

# AWS Glue 中的工作流程概觀
<a name="workflows_overview"></a>

在 AWS Glue 中，您可以使用工作流程來建立和視覺化包含多項爬蟲程式、任務和觸發的複雜性擷取、轉換和載入 (ETL) 活動。每項工作流程都管理其所有任務和爬蟲程式的執行和監控。因為工作流程執行每個元件，所以會記錄執行進度和狀態。這為您提供較大型任務和各步驟詳細資訊的概觀。AWS Glue 主控台以圖形視覺化呈現工作流程。

您可以從AWS Glue藍圖建立工作流程，也可以使用 AWS 管理主控台 或 一次手動建置工作流程元件 AWS Glue API。如需有關藍圖的詳細資訊，請參閱 [AWS Glue 中的藍圖概觀](blueprints-overview.md)。

工作流程中的*觸發*可啟動任務或爬蟲程式，並可在任務和爬蟲程式完成時引發。使用觸發，您可以建立相互依存之任務和爬蟲程式的大型鏈結。除了定義任務和爬蟲程式相依性的工作流程中的觸發之外，每個工作流程都有*啟動觸發*。啟動觸發有三種類型：
+ **排程** — 工作流程會根據您定義的排程啟動。排程可以是每日、每週、每月等，也可以是根據 `cron` 表達式的自訂排程。
+ **隨需** – 從AWS Glue主控台、API 或 手動啟動工作流程 AWS CLI。
+ **EventBridge** - 工作流程會在單一 Amazon EventBridge 事件或一批 Amazon EventBridge 事件發生時啟動。使用此觸發類型，AWS Glue 可以是事件驅動架構中的事件消費者。任何 EventBridge 事件類型都可以啟動工作流程。一個常見的使用案例是 Amazon S3 儲存貯體中的新物件到達 (S3 `PutObject` 操作)。

  使用批次事件啟動工作流程表示等到收到指定數量的事件，或直到指定的時間過去。當您建立 EventBridge 事件觸發時，您可以選擇性地指定批次條件。如果您指定批次條件，則必須指定批次大小 (事件數)，並且可以選擇性地指定批次時段 (秒數)。預設和最大批次時段為 900 秒 (15 分鐘)。符合的批次條件會先啟動工作流程。當第一個事件到達時，批次時段會啟動。如果您在建立觸發時未指定批次條件，則批次大小預設為 1。

  當工作流程啟動時，批次條件會重設，事件觸發會開始監控下一個批次條件，以便再次啟動工作流程。

  下表顯示批次大小和批次時段如何一起運作以觸發工作流程。    
[See the AWS documentation website for more details](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/workflows_overview.html)

  `GetWorkflowRun` API 操作會傳回觸發工作流程的批次條件。

無論工作流程的啟動方式為何，您都可以在建立工作流程時指定並行工作流程執行的最大數目。

如果事件或事件批次啟動最終失敗的工作流程執行，則不再考慮該事件或事件批次來啟動工作流程執行。只有在下一個事件或事件批次到達時，才會啟動新的工作流程執行。

**重要**  
將工作流程中的任務、爬蟲程式和觸發程序總數限制在 100 或更少。如果包含超過 100 個，則嘗試繼續或停止工作流程執行時可能會出現錯誤。

如果工作流程執行會超過為工作流程設定的並行限制，即使符合事件條件，也不會啟動工作流程執行。建議您根據預期的事件量調整工作流程並行限制。AWS Glue 不會重試因超出並行限制而失敗的工作流程執行。同樣地，建議您根據預期的事件數量，在工作流程中調整任務和爬蟲程式的並行限制。

**工作流程執行屬性**  
若要共享和管理整個工作流程回合的狀態，您可以定義預設工作流程回合屬性。這些屬性都是名稱/值對，可供工作流程中的所有任務使用。使用 AWS Glue API，任務可以擷取工作流程執行屬性，並為稍後在工作流程中出現的任務修改它們。

**工作流程圖**  
下圖顯示 AWS Glue 主控台的基本工作流程圖形。您的工作流程可能擁有數十個元件。

![顯示工作流程 Graph (圖形) 標籤的主控台螢幕擷取畫面。此圖形包含代表排程觸發的 5 個圖示、2 項任務、一個事件成功觸發，以及更新結構描述的爬蟲程式。](http://docs.aws.amazon.com/zh_tw/glue/latest/dg/images/graph-complete-with-tabs.png)


此工作流程是由排程觸發 `Month-close1` 啟動，這會啟動兩項任務 `De-duplicate` 和 `Fix phone numbers`。成功完成這兩項任務時，事件觸發 `Fix/De-dupe succeeded` 會啟動爬蟲程式 `Update schema`。

**靜態和動態工作流程檢視**  
每項工作流程都有「靜態檢視」**和「動態檢視」**的概念。靜態檢視指出工作流程的設計。動態檢視是包含每項任務和爬蟲程式最新執行資訊的執行時間檢視。執行資訊包含成功狀態和錯誤的詳細資訊。

當工作流程執行時，主控台會顯示動態檢視，以圖形指示已經完成和還在執行的任務。您也可以使用 AWS Glue API擷取執行中工作流程的動態檢視。如需詳細資訊，請參閱[使用 查詢工作流程 AWS Glue API](workflows_api_concepts.md)。

**另請參閱**  
[在 AWS Glue 中從藍圖建立工作流程](creating_workflow_blueprint.md)
[在 AWS Glue 中手動建立和建構工作流程](creating_running_workflows.md)
[工作流程](aws-glue-api-workflow.md) (適用於工作流程 API)