我想用 C# 编写 AWS Lambda 函数。我最终的目标是制作一个 Alexa 技能,但看起来 ASK CLI 还不支持 C#。
我的开发环境包括:
- Ubuntu 18.10 x64
- 安装了 AWS Toolkit 插件的 JetBrains Rider
- 一个位于美国的 AWS 账户,所有内容都在
us-east-1
中运行
- 安装并配置了 AWS CLI
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.GetEnvironmentVariable("Environment");
应用配置.cs
public class ApplicationConfig
{
public string Environment => GetValue("Environment");
public string GetValue(string key) => Environment.GetEnvironmentVariable(key);
}
此外,如果配置中没有任何内容,您可以为 ApplicationConfig 属性设置一个默认值
关于c# - 如何在本地运行基于 C# 的 AWS Lambda 函数进行开发?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53918155/