我想在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。
您可以创建一个控制台应用程序,引用lambda项目并在其中运行lambda。
如果您有任何环境变量,则必须使用Environment class。为了更好地管理应用程序中的配置,最好为环境相关变量编写一个包装器(类似于ApplicationConfig)。
在Console runner使用中设置env变量
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属性设置默认值