在本地调试C#AWS Lambda函数

时间:2017-08-13 16:45:31

标签: c# amazon-web-services debugging lambda .net-core

我一直在审查亚马逊的C#和Lambda文档。我已经尝试使用他们的yeoman生成器和Visual Studio的Toolkit。我的目标是简单地拥有一个项目,该项目包含我可以在本地计算机上调试的多个功能。问题是运行调试器会给我一条关于没有项目入口点的消息,这是有意义的,因为它是作为类库创建的。

从我所看到的情况来看,开发过程看起来就是在AWS上编写代码,部署和运行该功能。调试将审查该输出并从那里开始。有没有办法实际使用Visual Studio的内置调试器?更好的是,我想在我的Mac上进行本地调试的工作流程。例如,在NodeJS中,我可以使用无服务器框架并将VS Code中的launch.json文件设置为以下内容:

"configurations": [{
    "type": "node",
    "request": "launch",
    "protocol": "legacy",
    "name": "run hello",
    "program": "${workspaceRoot}/node_modules/.bin/sls",
    "args": [
        "invoke",
        "local",
        "--function",
        "hello",
        "--data",
        "{}"
    ]
}

这允许我模拟数据并使用断点进行调试。

3 个答案:

答案 0 :(得分:1)

This AWS lambda documentation通过AWS CLI调用lambda开始测试主题。本文提供了在不同操作系统和IDE中使用AWS CLI的链接。

示例调用呼叫:

aws lambda invoke --invocation-type RequestResponse --function-name helloworld --region us-west-2 --profile adminuser

Tutorial with details of using Invoke

AWS Invoke API Reference documentation

答案 1 :(得分:1)

我没有遵循本指南,但它似乎谈论了如何在本地调试。如果需要,它会进一步实际设置AWS:

https://cloudncode.blog/2017/01/24/getting-started-with-writing-and-debugging-aws-lambda-function-with-visual-studio-code/

从它的要点出发,您似乎为Lambda类设置了一个主入口点,该入口点从JSON加载测试文件。这与您在AWS上设置Lambda函数测试的方式类似。

答案 2 :(得分:0)

使用Visual Studio,您可以安装 AWS的AWS .NET Mock Lambda测试工具

在与解决方案文件相同的目录中使用以下命令:

dotnet tool install -g Amazon.Lambda.TestTool-2.1

Visual Studio自动添加调试配置,因此您可以像调试其他任何.NET应用程序一样调试项目。

VS Code,Rider和自述文件中提供的其他说明: https://github.com/aws/aws-lambda-dotnet/tree/master/Tools/LambdaTestTool