You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Mock Lambda Test Tool测试.NET 7 NativeAOT Lambda函数报错

解决.NET 7 NativeAOT Lambda本地Mock测试问题

选项选择说明

  • Test Function:仅适用于传统.NET Lambda项目(通过反射调用Handler方法),NativeAOT编译后移除了反射元数据,无法通过该模式调用,这就是你遇到System.ArgumentException的原因。
  • Executable Assembly:这是NativeAOT Lambda的正确测试选项,直接运行编译后的可执行文件,无需反射。

解决「Executable Assembly」无反应的问题

1. 确保已编译NativeAOT可执行文件

在项目目录执行编译命令(适配Linux环境):

dotnet publish -c Release -r linux-x64

编译完成后,可执行文件位于bin/Release/net7.0/linux-x64/publish/目录下(文件名与项目名一致)。

2. 修正测试输入格式

你当前的输入{"Id": "test"}是请求Body的内容,但Lambda Handler接收的是APIGatewayHttpApiV2ProxyRequest对象,需要传入完整的请求结构:

{
  "Body": "{\"Id\": \"test\"}",
  "RequestContext": {
    "Http": {
      "Method": "POST"
    }
  }
}

注意:Body字段需要是JSON字符串(转义后的),因为APIGateway请求的Body本身就是序列化后的字符串。

3. 配置并运行测试

  • 在Mock Lambda Test Tool中选择「Executable Assembly」,点击「Browse」指定编译后的可执行文件路径。
  • 将修正后的测试输入填入输入框,点击「Execute」。
  • 切换到「Logs」标签页查看Lambda执行日志和返回结果。

额外调试技巧

如果工具仍无反应,可直接在终端运行可执行文件验证:

cd bin/Release/net7.0/linux-x64/publish/
./DocGenerator

然后粘贴完整的APIGateway请求JSON,按Ctrl+D结束输入,查看终端输出是否正常,排除工具本身的问题。

内容的提问来源于stack exchange,提问作者TrinaE

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 21:11:29