

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

# 耐用函數或 Step Functions
<a name="durable-step-functions"></a>

Lambda 耐用函數和 透過自動狀態管理和故障復原 AWS Step Functions 啟用可靠的工作流程協同運作。它們提供不同的開發人員偏好設定和架構模式。耐用函數已針對 Lambda 內的應用程式開發進行最佳化，而 Step Functions 則是針對跨 AWS 服務的工作流程協同運作而建置。

## 何時使用耐用函數
<a name="durable-sfn-when-durable"></a>

在以下情況下使用耐用的函數：
+ 您的團隊偏好標準程式設計語言和熟悉的開發工具
+ 您的應用程式邏輯主要位於 Lambda 函數內
+ 您想要精細控制程式碼中的執行狀態
+ 您正在建置以 Lambda 為中心的應用程式，在工作流程和商業邏輯之間緊密結合
+ 您想要快速反覆運算，而無需在程式碼和視覺化/JSON 設計工具之間切換

## 何時使用 Step Functions
<a name="durable-sfn-when-step"></a>

在下列情況下使用 Step Functions：
+ 您需要視覺化工作流程呈現才能跨團隊可見性
+ 您正在協調多個 AWS 服務，並希望在沒有自訂 SDK 程式碼的情況下進行原生整合
+ 您需要零維護基礎設施 （無需修補、執行時間更新）
+ 非技術利益相關者需要了解和驗證工作流程邏輯

## 決策架構
<a name="durable-sfn-decision-framework"></a>

使用下列問題來判斷哪些服務符合您的使用案例：
+ **您的主要重點是什麼？** Lambda 中的應用程式開發 → 耐用函數。跨 AWS → Step Functions 的工作流程協同運作。
+ **您偏好的程式設計模型是什麼？** 標準程式設計語言 → 耐用的函數。以圖形為基礎的 DSL 或視覺化設計工具 → Step Functions。
+ **涉及多少 AWS 服務？** 主要是 Lambda → 耐用函數。多項 AWS 服務 → Step Functions。
+ **您使用哪些開發工具？** Lambda 開發人員體驗、IDE 搭配 LLM 代理程式、程式設計語言特定單元測試架構 AWS SAM、 AWS CDK AWS Toolkit → 耐用函數。視覺化工作流程建置器， AWS CDK 以建立工作流程模型 → Step Functions。
+ **誰管理基礎設施？** 需要 Lambda 內的彈性 → 耐用函數。想要完全受管、零維護 → Step Functions。

## 功能比較
<a name="durable-sfn-comparison"></a>

下表比較 Step Functions 和 Lambda 耐用函數之間的主要功能：


| 功能 | AWS Step Functions | Lambda 耐用函數 | 
| --- | --- | --- | 
| 主要焦點 | 跨 的工作流程協同運作 AWS | Lambda 中的應用程式開發 | 
| 服務類型 | 獨立的專用工作流程服務 | 在 Lambda 中執行 | 
| 程式設計模型 | 以圖形為基礎的 Amazon States 語言 DSL 或 AWS CDK | 標準程式設計語言 (JavaScript/TypeScript、Python) | 
| 開發工具 | 主控台 / AWS Toolkit IDE 延伸中的視覺化建置器， AWS CDK | IDE 和 LLM 代理程式內的 Lambda DX、單元測試架構 AWS SAM、 AWS Toolkit IDE 延伸模組 | 
| 整合 | 220\$1 AWS 服務、16k APIs | Lambda 事件驅動的程式設計模型延伸 （事件來源） | 
| 管理 | 全受管、執行期無關、零維護 （無修補、執行期更新） | 在 Lambda 環境中受管 | 
| 最適合 | 業務流程和 IT 自動化、資料處理、AI 工作流程 | 分散式交易、具狀態應用程式邏輯、函數協同運作、資料處理、AI 工作流程 | 

## 混合架構
<a name="durable-sfn-hybrid"></a>

許多應用程式都受益於使用這兩種服務。常見的模式是對 Lambda 內的應用程式層級邏輯使用耐久的函數，而 Step Functions 則協調 Lambda 函數以外跨多個 AWS 服務的高階工作流程。

## 遷移考量事項
<a name="durable-sfn-migration"></a>

**啟動簡單、不斷發展的複雜：**從 Lambda 工作流程的耐久函數開始。當您需要多服務協同運作或視覺化工作流程設計時，請新增 Step Functions。

**現有的 Step Functions 使用者：**為已建立的跨服務工作流程保留 Step Functions。對於需要可靠性的新 Lambda 應用程式邏輯，請考慮使用耐用的函數。

## 相關資源
<a name="durable-sfn-related"></a>
+ [Lambda 耐用函數](durable-functions.md)
+ [使用 Step Functions 協調 Lambda 函數](with-step-functions.md)
+ [耐用函數入門](durable-getting-started.md)