耐用函數或 Step Functions - AWS Lambda

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

耐用函數或 Step Functions

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

何時使用耐用函數

在以下情況下使用耐用的函數:

  • 您的團隊偏好標準程式設計語言和熟悉的開發工具

  • 您的應用程式邏輯主要位於 Lambda 函數內

  • 您想要精細控制程式碼中的執行狀態

  • 您正在建置以 Lambda 為中心的應用程式,在工作流程和商業邏輯之間緊密結合

  • 您想要快速反覆運算,而無需在程式碼和視覺化/JSON 設計工具之間切換

何時使用 Step Functions

在下列情況下使用 Step Functions:

  • 您需要視覺化工作流程呈現才能跨團隊可見性

  • 您正在協調多個 AWS 服務,並希望在沒有自訂 SDK 程式碼的情況下進行原生整合

  • 您需要零維護基礎設施 (無需修補、執行時間更新)

  • 非技術利益相關者需要了解和驗證工作流程邏輯

決策架構

使用下列問題來判斷哪些服務符合您的使用案例:

  • 您的主要重點是什麼? 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。

功能比較

下表比較 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+ AWS 服務、16k APIs Lambda 事件驅動的程式設計模型延伸 (事件來源)
管理 全受管、執行期無關、零維護 (無修補、執行期更新) 在 Lambda 環境中受管
最適合 業務流程和 IT 自動化、資料處理、AI 工作流程 分散式交易、具狀態應用程式邏輯、函數協同運作、資料處理、AI 工作流程

混合架構

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

遷移考量事項

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

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