我如何 运行 基于 C# 的 AWS Lambda 函数在本地进行开发?
How do I run C#-based AWS Lambda functions locally for development?
我想用 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 函数的有用文档,并且 运行 它直接在我的计算机上用于测试。我之前使用 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 属性设置一个默认值
我想用 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 函数的有用文档,并且 运行 它直接在我的计算机上用于测试。我之前使用 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 属性设置一个默认值