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

问题描述 投票:2回答:1

我想在C#中编写AWS Lambda函数。我最终的目标是制作Alexa技能,但看起来ASK CLI还不支持C#。

我的开发环境包括:

  • Ubuntu 18.10 x64
  • JetBrains Rider安装了AWS Toolkit插件
  • 基于美国的AWS账户,所有内容都在us-east-1中运行
  • 已安装和配置AWS CLI
  • 安装了dotnet-sdk-2.1dotnet-runtime-2.1

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

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

enter image description here

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

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

c# amazon-web-services aws-lambda rider
1个回答
2
投票

您可以创建一个控制台应用程序,引用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属性设置默认值

© www.soinside.com 2019 - 2024. All rights reserved.