

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

# 測試 Lambda 耐用函數
<a name="durable-testing"></a>

使用持久性執行測試 SDKs 在本機和雲端中執行和檢查執行。如需撰寫測試、聲明、雲端執行器、SAM CLI 整合和完整範例，請參閱《 AWS 持久性執行開發套件開發人員指南》中的[測試](https://docs.aws.amazon.com/durable-execution/testing/)。

## 雲端測試的 IAM 許可
<a name="durable-cloud-testing"></a>

當您使用雲端執行器或 `sam remote invoke` 測試部署的耐用函數時，呼叫主體需要許可來叫用函數並讀取其執行歷史記錄。將下列許可連接至您的測試發起人：

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lambda:InvokeFunction",
                "lambda:GetDurableExecution",
                "lambda:GetDurableExecutionHistory"
            ],
            "Resource": [
                "arn:aws:lambda:region:account-id:function:function-name",
                "arn:aws:lambda:region:account-id:function:function-name:*"
            ]
        }
    ]
}
```

將 {{region}}、{{account-id}} 和 {{function-name}} 取代為您的值。

## 偵錯失敗
<a name="durable-testing-debugging"></a>

當測試失敗時，請檢查執行結果以了解發生了什麼問題。檢查執行狀態，以查看函數是否成功、失敗或逾時。讀取錯誤訊息以了解失敗原因。

檢查個別操作結果，找出行為偏離預期的位置。檢查步驟結果以查看產生了哪些值。驗證操作排序，以確認在預期序列中執行的操作。計數操作以確保建立正確數量的步驟、等待和回呼。

常見問題包括可在重播時產生不同結果的非確定性程式碼、透過重播期間中斷的全域變數共用狀態，以及因條件式邏輯錯誤而缺少操作。使用標準除錯器和記錄來逐步執行函數程式碼和追蹤執行流程。

對於雲端測試，請檢查 CloudWatch Logs 中的執行歷史記錄，以查看詳細的操作日誌。使用追蹤來追蹤跨 服務的執行流程，並識別瓶頸。