我想用C#编写一个AWS Lambda函数。我最终的目标是提高Alexa的技能,但看起来ASK CLI尚不支持C#。
我的开发环境包括:
us-east-1
中运行dotnet-sdk-2.1
和dotnet-runtime-2.1
已安装我似乎找不到任何有关如何使用C#编写Lambda函数并直接在计算机上运行以进行测试的有用文档。之前,我已经使用lambda-local使用Node.js做到了这一点,它只是从AWS CLI继承了我的AWS凭证,但是代码在我自己的计算机上运行。
我尝试在Rider中使用AWS Toolkit插件,但是当我尝试为AWS Lambda Local创建运行配置时,运行时列表为空:
那么,如何才能建立一个开发环境,让我可以在本地运行C#Lambda函数,以使用断点进行测试,而不必使用与AWS CLI相同的凭据,并最终构建并部署到AWS上? >
如果可以简化操作,我愿意使用另一个类似VSCode的IDE,但是我真的想避免运行Windows开发我的代码,这意味着避免使用Visual Studio。
答案 0 :(得分:2)
您可以创建一个控制台应用程序,引用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属性设置默认值