

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

# 管理 Lambda 工作流程與事件
<a name="workflow-event-management"></a>

使用 Lambda 建置無伺服器應用程式時，您通常需要協調函數執行和處理事件的方法。 AWS 提供數種方法來協調 Lambda 函數：
+ [Lambda 中用於程式碼優先工作流程協同運作的 Lambda 耐用函數](durable-functions.md) 
+ AWS Step Functions 用於跨多個服務的視覺化工作流程協同運作
+ 適用於事件驅動型架構和排程的 Amazon EventBridge 排程器和 Amazon EventBridge 

您也可以將這些方法整合在一起。例如，您可以使用 EventBridge 排程器在特定事件發生時觸發持久函數或 Step Functions 工作流程，或設定工作流程以在定義的執行點將事件發佈至 EventBridge 排程器。本節中的下列主題提供如何使用這些協同運作選項的詳細資訊。

## 具有耐久函數的程式碼優先協同運作
<a name="durable-functions-orchestration"></a>

Lambda 耐用函數提供工作流程協同運作的程式碼優先方法，可讓您直接在 Lambda 函數內建置具狀態且長時間執行的工作流程。與外部協同運作服務不同，耐用的 函數會將工作流程邏輯保留在程式碼中，讓您更輕鬆地搭配業務邏輯進行版本、測試和維護。

當您需要時，耐用的函數是理想的選擇：
+ **使用標準程式設計語言：**使用熟悉的程式設計語言定義工作流程，例如 JavaScript 和 Python
+ **長時間執行的程序：**執行工作流程，最多可執行一年，遠超過標準 Lambda 函數的 15 分鐘限制
+ **簡化開發：**將工作流程邏輯和商業邏輯保留在相同的程式碼庫中，以便於維護和測試
+ **經濟實惠的等待：**在等待狀態期間暫停執行，而不耗用運算資源
+ **內建狀態管理：**自動檢查點和狀態持續性，無需外部儲存組態

如需在耐用函數和 Step Functions 之間進行選擇的說明，請參閱[耐用函數或 Step Functions](durable-step-functions.md)。

如需耐用函數的詳細資訊，請參閱 [Lambda 耐用函數](durable-functions.md)。

## 使用 Step Functions 協同運作工作流程
<a name="orchestrating-workflows"></a>

AWS Step Functions 是一種工作流程協同運作服務，可協助您將多個 Lambda 函數和其他 AWS 服務協調為結構化工作流程。這些工作流程可以維護狀態、使用複雜的重試機制處理錯誤，以及大規模處理資料。

Step Functions 提供兩種類型的工作流程，可滿足不同的協同運作需求：

**標準工作流程**  
適用於需具備「恰好一次」執行語義、執行時間較長且可稽核的工作流程。標準工作流程最長可以執行一年，提供詳細的執行歷史記錄，並支援視覺化偵錯功能。此類型適用於訂單履行、資料處理管道或多步驟分析任務等流程。

**快速工作流程**  
專為具備「至少一次」執行語義、高事件量且執行時間短的工作負載而設計。快速工作流程最長可執行五分鐘，非常適合大量事件處理、串流資料轉換或 IoT 資料擷取案例。相較於標準工作流程，此類型提供的輸送量更高，成本可能更低。

**注意**  
如需有關 Step Functions 工作流程類型的詳細資訊，請參閱 [Choosing workflow type in Step Functions](https://docs.aws.amazon.com/step-functions/latest/dg/choosing-workflow-type.html)。

在此類工作流程中，Step Functions 提供兩種類型的映射狀態，用於實現平行處理：

**內嵌映射**  
在父工作流程的執行歷史記錄中處理來自 JSON 陣列的項目。內嵌映射最多支援 40 個並行迭代，適用於較小的資料集或需要將所有處理保持在單次執行內的情況。如需詳細資訊，請參閱 [Using Map state in Inline mode](https://docs.aws.amazon.com/step-functions/latest/dg/amazon-states-language-map-state.html)。

**分散式映射**  
透過迭代處理超過 256 KiB 或需要超過 40 個並行迭代的資料集，實現對大規模平行工作負載的處理。分散式映射可支援最多 10,000 個平行子工作流程執行，擅長處理儲存在 Amazon S3 中的半結構化資料 (例如 JSON 或 CSV 檔案)，因此非常適合批次處理與 ETL 操作。如需詳細資訊，請參閱 [Using Map state in Distributed mode](https://docs.aws.amazon.com/step-functions/latest/dg/state-map-distributed.html)。

透過結合這些工作流程類型與映射狀態，Step Functions 提供了靈活且強大的工具集，能夠從小型操作到大型資料處理管道，全面協同運作複雜的無伺服器應用程式。

若要開始將 Lambda 與 Step Functions 搭配使用，請參閱[使用 Step Functions 協同運作 Lambda 函式](with-step-functions.md)。

## 使用 EventBridge 與 EventBridge 排程器管理事件
<a name="managing-events"></a>

Amazon EventBridge 是一項事件匯流排服務，可協助建置事件驅動型架構。它會路由 AWS 服務、整合應用程式和軟體即服務 (SaaS) 應用程式之間的事件。EventBridge 排程器是無伺服器排程器。使用 EventBridge 排程器，您可以從一個中央服務建立、執行和管理任務、使用 Cron 和 Rate 表達式依排程叫用 Lambda 函數，或設定一次性叫用。

Amazon EventBridge 和 EventBridge 排程器可協助使用 Lambda 建置事件驅動型架構。EventBridge 會路由 AWS 服務、整合應用程式和 SaaS 應用程式之間的事件，而 EventBridge 排程器則提供特定排程功能，以定期或一次性叫用 Lambda 函數。

這些服務為使用 Lambda 函式提供數種關鍵功能：
+ 使用 EventBridge 建立規則來比對事件，並將其路由至 Lambda 函式
+ 使用 EventBridge 排程器設定以 Cron 與 Rate 表達式驅動的週期性函式調用
+ 在特定日期和時間設定一次性函式調用
+ 為排程調用定義彈性時段與重試政策

如需詳細資訊，請參閱[依排程調用 Lambda 函數](with-eventbridge-scheduler.md)。