我如何 运行 基于 C# 的 AWS Lambda 函数在本地进行开发?

How do I run C#-based AWS Lambda functions locally for development?

我想用 C# 编写 AWS Lambda 函数。我最终的目标是制作一个 Alexa 技能,但 ASK CLI 似乎还不支持 C#。

我的开发环境包括:

我似乎找不到任何有关如何在 C# 中编写 Lambda 函数的有用文档,并且 运行 它直接在我的计算机上用于测试。我之前使用 Node.js 使用 lambda-local 完成了此操作,它只是从 AWS CLI 继承了我的 AWS 凭证,但代码 运行s 在我自己的计算机上。

我尝试在 Rider 中使用 AWS Toolkit 插件,但是当我尝试为 AWS Lambda Local 创建 运行 配置时,运行 时间列表为空:

那么,我如何设置一个开发环境,让我 运行 C# Lambda 在本地运行以使用断点和诸如此类的东西进行测试,使用可能与 AWS CLI 相同的凭据,并最终构建和部署到 AWS?

我愿意使用另一个 IDE,比如 VSCode,如果这样更容易的话,但我真的想避免 运行ning Windows 来开发我的代码这意味着避免 Visual Studio 适当。

您可以创建一个控制台应用程序,在其中引用 lambda 项目和 运行 lambda。

如果您有任何环境变量,则必须使用 Environment class。 为了更好地管理应用程序中的配置,最好为环境相关变量编写一个包装器(类似于 ApplicationConfig)。

要在控制台 运行 中设置环境变量,请使用

Environment.SetEnvironmentVariable("Environment", "local");

并检索:

Environment.GetEnvironmentVariable("Environment");

ApplicationConfig.cs

public class ApplicationConfig
{
     public string Environment => GetValue("Environment");
     public string GetValue(string key) => Environment.GetEnvironmentVariable(key);
} 

此外,如果配置中没有任何内容,您可以为 ApplicationConfig 属性设置一个默认值