Lambda 耐用函數 - AWS Lambda

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

Lambda 耐用函數

Lambda 耐用函數可讓您建置彈性的多步驟應用程式和 AI 工作流程,可執行長達一年,同時在中斷的情況下保持可靠的進度。當持久性函數執行時,這個完整的生命週期稱為持久性執行,它使用檢查點來追蹤進度,並透過重新執行自動從失敗中復原,從頭開始重新執行,同時略過完成的工作。

在每個函數中,您會使用耐用的操作做為基本的建置區塊。步驟會使用內建重試和進度追蹤來執行商業邏輯,同時等待暫停執行而不會產生運算費用,因此非常適合長時間執行的程序human-in-the-loop工作流程或輪詢外部相依性。無論您是在處理訂單、協調微服務或協調代理式 AI 應用程式,當您使用熟悉的程式設計語言編寫程式碼時,耐用的函數會自動維持狀態並從失敗中復原。

主要優點

自然撰寫彈性程式碼:使用熟悉的程式設計建構,您可以撰寫自動處理失敗的程式碼。內建檢查點、透明重試和自動復原意味著您的商業邏輯保持乾淨且專注。

僅為您使用的項目付費:在等待操作期間,您的函數會暫停,而不會產生運算費用。對於等待數小時或數天的長時間執行工作流程,您只需支付實際處理時間,而非閒置等待。

操作簡單:使用 Lambda 的無伺服器模型,您可以自動擴展,包括scale-to-zero,而無需管理基礎設施。耐用的函數會自動處理狀態管理、重試邏輯和故障復原,從而降低營運開銷。

運作方式

在幕後,耐用的函數是一般的 Lambda 函數,使用檢查點/重播機制來追蹤進度,並透過使用者定義的暫停點支援長時間執行的操作,通常稱為耐用執行。當持久的函數從等待點繼續,或像重試一樣中斷時,系統會執行重播。在重播期間,您的程式碼會從頭開始執行,但會略過已完成的檢查點,使用儲存的結果,而不是重新執行已完成的操作。此重播機制可確保一致性,同時啟用長時間執行的執行。

函數從暫停或中斷恢復後,系統會執行重播。在重播期間,您的程式碼會從頭開始執行,但會略過已完成的檢查點,使用儲存的結果,而不是重新執行已完成的操作。此重播機制可確保一致性,同時啟用長時間執行的執行。

為了在您的應用程式中利用此checkpoint-and-replay機制,Lambda 提供耐用的執行 SDK。開發套件可消除管理檢查點和重播的複雜性,公開您在程式碼中使用的稱為耐久操作的簡單基本概念。開發套件適用於 JavaScript、TypeScript 和 Python,可與您現有的 Lambda 開發工作流程無縫整合。

使用 SDK,您可以包裝 Lambda 事件處理常式,然後提供 DurableContext 與您的事件並行。此內容可讓您存取耐用的操作,例如步驟和等待。您可以將函數邏輯寫入為一般循序程式碼,但不會直接呼叫 服務,而是將這些呼叫包裝為自動檢查點和重試的步驟。當您需要暫停執行時,您可以新增暫停函數的等待,而不會產生費用。開發套件可處理所有複雜的狀態管理和在幕後重播,讓您的程式碼保持乾淨且可讀取。

Filter for Amazon Inspector results related to Lambda functions

何時使用耐用函數

短期協調:透過自動轉返失敗,協調跨多項服務的付款、庫存和運送。透過驗證、付款授權、庫存分配和履行來處理訂單,並保證完成。

安心處理付款:建立彈性付款流程,透過失敗維持交易狀態,並自動處理重試。協調跨付款供應商的多步驟授權、詐騙檢查和和解,並跨步驟進行完整稽核。

建置可靠的 AI 工作流程:建立多步驟 AI 工作流程,以鏈結模型呼叫、整合人工意見回饋,並在失敗期間果斷地處理長時間執行的任務。停用後自動繼續,且只需支付作用中的執行時間。

協調複雜的訂單履行:使用內建彈性協調跨庫存、付款、運送和通知系統的訂單處理。自動處理部分故障、保留中斷時的順序狀態,並有效率地等待外部事件,而不會耗用運算資源。

自動化多步驟業務工作流程:為員工加入、貸款核准和跨越數天或數週的合規程序建立可靠的工作流程。維護跨人工核准、系統整合和排程任務的工作流程狀態,同時提供程序狀態和歷史記錄的完整可見性。

後續步驟