本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
測試和偵錯耐用函數
在本機測試和偵錯耐用函數的運作方式與一般 Lambda 函數類似,並自動支援檢查點和重播。本指南涵蓋常見的測試案例和故障診斷技術。
本機測試工作流程
在本機測試耐用函數時,工作流程與一般 Lambda 函數不同:
耐用的函數測試工作流程
-
建置您的應用程式:
$sam build -
叫用您的耐久函數:
$sam local invoke MyDurableFunction --durable-execution-name test -
如有需要,請檢查執行歷史記錄:
$sam local execution historyexecution-id
常見測試案例
測試檢查點行為
若要測試您的函數是否正確檢查點狀態:
# Example Python durable function def handler(event, context): # This will create a checkpoint context.wait(10) # Wait 10 seconds # Function resumes here after wait return {"message": "Function resumed after wait"}
當您在本機叫用此函數時,會自動處理等待期間。
測試回呼案例
對於等待外部回呼的函數:
-
啟動等待回呼的耐久函數
-
在另一個終端機中,解析回呼:
$sam local callback succeedcallback-id -
觀察函數繼續執行
疑難排解
耐用函數未正確執行
問題: 函數無法做為持久的函數。
解決方案:
-
確認
DurableConfig已在您的 SAM 範本中設定 -
確保您的函數程式碼使用耐用的函數 SDK 方法 (例如
context.wait()) -
檢查您是否使用支援的執行期 (TypeScript、JavaScript、Python)
無法擷取執行歷史記錄
問題:local execution history命令不會傳回任何結果。
解決方案:
-
驗證執行 ID 是否正確
-
檢查是否已調用該函數至少一次
回呼命令無法運作
問題:回呼命令無法解決待處理的操作。
解決方案:
-
驗證回呼 ID 是否正確
-
確保函數實際正在等待回呼
-
確認您使用的是正確的回呼命令語法
偵錯秘訣
-
使用執行歷史記錄 - 檢閱執行歷史記錄,以了解您耐用函數的流程
-
遞增測試 - 在新增複雜邏輯之前,從簡單的等待操作開始
-
使用詳細記錄 - 啟用詳細記錄以追蹤執行流程
進一步了解
如需測試和偵錯的詳細資訊,請參閱:
-
使用 進行測試的簡介 sam local invoke - 本機調用文件
-
sam local execution history - 執行歷史記錄