本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
测试和调试耐用函数
本地测试和调试耐久函数的工作方式与常规 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 是否正确
-
确保该函数实际上是在等待回调
-
验证您使用的回调命令语法是否正确
调试技巧
-
使用执行历史记录-查看执行历史以了解持久函数的流程
-
增量测试-从简单的等待操作开始,然后再添加复杂的逻辑
-
使用详细日志-启用详细日志记录以跟踪执行流程
了解更多
有关测试和调试的更多信息,请参阅: