測試和偵錯耐用函數 - AWS Serverless Application Model

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

測試和偵錯耐用函數

在本機測試和偵錯耐用函數的運作方式與一般 Lambda 函數類似,並自動支援檢查點和重播。本指南涵蓋常見的測試案例和故障診斷技術。

本機測試工作流程

在本機測試耐用函數時,工作流程與一般 Lambda 函數不同:

耐用的函數測試工作流程
  1. 建置您的應用程式:

    $ sam build
  2. 叫用您的耐久函數:

    $ sam local invoke MyDurableFunction --durable-execution-name test
  3. 如有需要,請檢查執行歷史記錄:

    $ sam local execution history execution-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"}

當您在本機叫用此函數時,會自動處理等待期間。

測試回呼案例

對於等待外部回呼的函數:

  1. 啟動等待回呼的耐久函數

  2. 在另一個終端機中,解析回呼:

    $ sam local callback succeed callback-id
  3. 觀察函數繼續執行

疑難排解

耐用函數未正確執行

問題: 函數無法做為持久的函數。

解決方案:

  • 確認 DurableConfig 已在您的 SAM 範本中設定

  • 確保您的函數程式碼使用耐用的函數 SDK 方法 (例如 context.wait())

  • 檢查您是否使用支援的執行期 (TypeScript、JavaScript、Python)

無法擷取執行歷史記錄

問題:local execution history命令不會傳回任何結果。

解決方案:

  • 驗證執行 ID 是否正確

  • 檢查是否已調用該函數至少一次

回呼命令無法運作

問題:回呼命令無法解決待處理的操作。

解決方案:

  • 驗證回呼 ID 是否正確

  • 確保函數實際正在等待回呼

  • 確認您使用的是正確的回呼命令語法

偵錯秘訣

  • 使用執行歷史記錄 - 檢閱執行歷史記錄,以了解您耐用函數的流程

  • 遞增測試 - 在新增複雜邏輯之前,從簡單的等待操作開始

  • 使用詳細記錄 - 啟用詳細記錄以追蹤執行流程

進一步了解

如需測試和偵錯的詳細資訊,請參閱: