在这篇博客中,让我们看看如何开始使用 .NET Core 6 创建无服务器函数 (AWS Lambda)

我们要做什么?

  1. 使用 Visual Studio 创建 Lambda 函数

  2. 将函数推送到 AWS Lambda

  3. 确定测试功能的不同方法

先决条件:

1.Visual Studio 2022 社区版

2.AWS Toolkit for Visual Studio- 用于使用 Visual Studio 与 AWS 资源进行通信

走吧!

  1. 创建 IAM 用户

为了允许 Visual Studio 与我们的 AWS 账户对话,我们需要创建一个启用了编程访问的 IAM 用户。此外,用户需要拥有创建/发布 AWS Lambda 函数所需的相关权限。为简单起见,我们可以分配 AWS 管理员访问权限,但理想情况下,在 PROD 工作负载中,我们将始终看到遵循“最小特权原则”。 AWS_Access_Key_Secret.jpg

  1. 在 Visual Studio 上设置 AWS 配置文件

在查看 > 我们将找到 AWS Explorer。在面板顶部,我们将看到一个配置凭据详细信息的选项。从 IAM 屏幕中选择凭证并确保选择适当的 AWS 区域。保存后,凭据将被更新,详细信息将保存到配置文件中。 18.jpg5_Credential_file_path.jpg

3.创建一个新项目

创建一个新项目并从模板中搜索 AWS Lambda 项目(使用过滤器)6_Creating_New_Project.jpg

  1. 选择蓝图

与 AWS 控制台的选项非常相似,在这里,我们也可以选择使用预定义的蓝图。如果我们有与其中正在实施的类似的要求,这些是我们可以利用的基本实施。现在,选择一个 Empty 函数,因为我们想从头开始查看执行7_Create_Blueprint.jpg

5.函数.cs

这是我们将看到函数的主文件。默认函数将输入作为字符串接收,并通过将其转换为大写来返回。 7.jpg

6.修改函数接受自定义类

让我们更改 function.cs 文件。我们将添加一个具有 Id 和 Name 属性的自定义类,并将 .ToUpper() 应用于 Name 属性并从函数返回它19.jpg

  1. 使用 Visual Studio 进行本地测试

作为此步骤的一部分,只要我们单击“Mock Lambda 测试工具”,我们就可以在本地运行该函数8.jpg

  1. 自定义函数名

默认情况下,函数名称的格式为“assembly::type::method”。我们可以通过编辑“aws-lambda-tools-defaults.json”文件来修改并给它一个自定义名称9.jpg10.jpg

  1. 上传函数到 AWS

最后,是时候将我们的函数上传到 AWS。右键单击项目文件 > 选择“发布到 AWS Lambda”。选择后,我们将看到一个模式弹出窗口打开。它会从“aws-lambda-tools-defaults.json”文件中获取详细信息。但是,如果需要,我们可以对其进行修改。 11.jpg

  1. 高级功能详情

在这个界面下,我们可以提供IAM Role、Memory、Timeout、VPC、DLQ等功能详情。环境变量等

  • 角色名称 - 这是 Lambda 函数在创建时将承担的角色。我们需要为功能选择合适的角色以无缝执行。目前,由于我们的 lambda 不与任何其他 AWS 服务通信,因此分配了**“AWSLambdaBasicExecutionRole”**,它只能访问 CloudWatch 以转储日志。
  • 执行 - 在这里,我们需要提供我们希望函数拥有的内存和超时。
  • VPC - 如果我们希望我们的功能部署在任何自定义 VPC/子网组合中,我们可以在此处提供信息12.jpg
  1. 发布

点击发布功能后,Visual Studio 将开始将该功能上传到 AWS Lambda。它将创建 IAM 角色,附加策略,将 IAM 角色传播到我们指定的 AWS 区域,通过点击创建 .zip 文件并上传来执行发布命令。 13.jpg

  1. 在 AWS 控制台上验证

完成后,我们可以检查 AWS Lambda,我们现在将看到我们的函数已成功创建并准备就绪! 14.jpg

  1. 从 Visual Studio 测试功能

上传完成后,我们甚至可以在 Visual Studio 中测试该功能15.jpg

  1. 从 AWS 管理控制台测试功能

我们甚至可以通过创建这样的测试事件从 AWS Lambda 控制台执行测试16.jpg

  1. Cloudwatch 上的日志

如果您还记得,我们确实为我们的 Lambda 函数提供了 "AWSLambdaBasicExecutionRole"。使用该角色,我们可以允许我们的 AWS Lambda 函数将日志推送到 CloudWatch。我们可以导航到 CloudWatch 并查看成功通过的日志。 17.jpg

我们完成了:)

你可以在这里找到代码

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐