基本 AWS Lambda 项目 - AWS Toolkit for Visual Studio
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

基本 AWS Lambda 项目

使用适用于 Visual Studio 的 AWS Lambda .NET Core 项目模板,您可以使用 Microsoft .NET Core 创建 Lambda 函数。

有关设置 AWS Toolkit for Visual Studio 的先决条件和信息,请参阅在 AWS Toolkit for Visual Studio 中使用 AWS Lambda 模板

创建 Visual Studio.NET 内核 Lambda 项目

内置 Lambda Visual Studio 蓝图支持快速项目初始化。蓝图是一组标准文件和函数,用于快速演示功能,并为以后的修改提供了很好的起点。

创建 Lambda 项目

  1. 打开 Visual Studio,在 File (文件) 菜单上,选择 New (新建)Project (项目)

  2. 执行以下任一操作:

    • 对于 Visual Studio 2017,在 New Project 对话框中,展开 Installed,展开 Visual C#,选择 AWS Lambda,选择 AWS Lambda Project (.NET Core - C#) 模板,然后选择 OK

    • 对于 Visual Studio 2019,在 New Project 对话框中,确保将 LanguagePlatformProject type 下拉框设置为“All”,然后在 Search 字段中键入 aws lambda。然后选择 AWS Lambda Project (.NET Core - C#) (AWS Lambda 项目(.NET 内核 - C#)) 模板,然后选择 Next (下一步)

  3. 执行以下任一操作:

    • 对于 Visual Studio 2017,对于 Name (名称),输入 AWSLambda1,输入所需文件位置,然后选择 OK (确定)

    • 对于 Visual Studio 2019,对于 Name (名称),输入 AWSLambda1,输入所需的文件 Location (位置),然后选择 Create (创建)

  4. Select Blueprint 页面上,选择 Empty Function 蓝图,然后选择 Finish 以创建 Visual Studio 项目。您可以现在复查项目的结构和代码。

复查项目文件

有两个项目文件需要查看:aws-lambda-tools-defaults.jsonFunction.cs

以下示例显示了作为项目的一部分创建的 aws-lambda-tools-defaults.json 文件。您可以使用此文件中的字段设置构建选项,默认情况下 Lambda 工具将读取这些字段。Visual Studio 中的项目模板包含许多具有默认值的字段。字段 function-handler 指定在 Lambda 函数运行时运行的方法。如果您指定 function-handler 字段,则会在“Publish”向导中预填充该字段。如果您重命名函数、类或程序集,则还需要更新 aws-lambda-tools-defaults.json 文件中的字段。

{ "Information": [ "This file provides default values for the deployment wizard inside Visual Studio and the AWS Lambda commands added to the .NET Core CLI.", "To learn more about the Lambda commands with the .NET Core CLI execute the following command at the command line in the project root directory.", "dotnet lambda help", "All the command line options for the Lambda command can be specified in this file." ], "profile": "default", "region": "us-east-2", "configuration": "Release", "framework": "netcoreapp3.1", "function-runtime": "dotnetcore3.1", "function-memory-size": 256, "function-timeout": 30, "function-handler": "AWSLambda1::AWSLambda1.Function::FunctionHandler" }

检查 Function.cs 文件。Function.cs 将 c# 函数定义为作为 Lambda 函数公开。此 FunctionHandler 是在 Lambda 函数运行时运行的 Lambda 功能。在此项目中,定义了一个 函数:FunctionHandler,对输入文本调用 ToUpper()

您的项目现在可发布到 Lambda。

发布到 Lambda

如何以及何时调用 Lambda 功能并不是 Lambda 部署本身的一部分;Lambda 只是按需功能的“内容”。

将函数发布到Lambda

  1. 如果 AWS Explorer 窗口未打开,请选择 View (查看),然后选择 AWS Explorer

  2. Solution Explorer (解决方案资源管理器) 中,右键单击项目,然后选择 Publish to AWS Lambda (发布到 AWS Lambda)

  3. Upload Lambda Function 页面上,执行以下操作:

    
                  函数的上传屏幕Lambda
    1. 对于 Package Type (软件包类型),选择 Zip。 由于生成过程,将创建一个 ZIP 文件并将上传到 Lambda。另一个 Package Type (程序包类型) 选项为 ImageTutorial: (教程:)。 基本 Lambda 项目创建 Docker 映像指导您完成该替代操作。

    2. 对于 Function Name (函数名称),输入 Lambda 实例的显示名称。此名称是 Visual Studio 中的 AWS Explorer 以及 AWS 管理控制台 显示的引用名称。

    3. (可选)对于 Description (描述),输入要在AWS 管理控制台中与实例一起显示的文本。

    4. 选择 Next (下一步)

  4. Advanced Function Details (高级函数详细信息) 页面中,执行以下操作:

    1. 对于 Role Name,选择与您的账户关联的 角色。该角色为 函数中的代码所发起的任何 AWS 服务调用提供临时凭证。如果您没有角色,请选择 New Role based on AWS Managed Policy (基于 AWS 托管策略新建角色),然后选择 AWSLambdaBasicExecutionRole(具有最低访问权限的角色)。

      注意

      您的账户必须有权运行 IAM ListPolicies 操作,否则 Role Name (角色名称) 列表将为空,并且您将无法继续。

    2. (可选)如果您的 Lambda 函数访问 Amazon VPC 上的资源,请选择子网和安全组。

    3. (可选)设置您的 Lambda 函数所需的任何环境变量。密钥将自动由免费的默认服务密钥加密,您也可以指定收费的 AWS KMS 密钥。KMS 是一项托管服务,可使用它创建和控制用于对数据进行加密的加密密钥。如果您有一个 AWS KMS 密钥,则可从该列表中选择此密钥。

  5. 选择 Upload (上传)

    当函数正在上传到 时,将显示 Uploading Function (上传函数)AWS 页面。要在上传后使向导保持打开状态以便查看报告,请在上传完成之前清除表单底部的 Automatically close wizard on successful completion (在成功完成时自动关闭向导)

    在函数上传后,您的 Lambda 函数即会生效。此时将打开 Function: 视图页面,并显示您的新 Lambda 函数的配置。

  6. 要手动调用 Lambda 函数,请在 Test Function (测试函数) 选项卡上的自由文本输入字段中输入 hello lambda!,然后选择 Invoke (调用)。您的文本(转换为大写)将显示在 Response (响应) 中。

    
                  调用测试函数页

    您可以随时通过双击位于 AWS Explorer 中的 AWS Lambda 节点下的已部署实例来重新打开 Function: 视图。

  7. (可选)要再次确认您已成功发布 Lambda 函数,请登录 AWS 管理控制台,然后选择 Lambda。控制台将显示您所有已发布的 Lambda 函数,包括您刚刚创建的函数。

    
                  在 AWS 管理控制台上查看 Lamda 函数

清除

如果您不打算继续使用此示例进行开发,请删除您部署的 函数,以免为账户中的未使用资源付费。

删除 函数

  • AWS Explorer 中的 AWS Lambda 节点下,打开已部署实例的上下文(右键单击)菜单,然后选择 Delete (删除)

后续步骤

此示例演示如何创建具有 .NET 3.1 托管运行时的项目。有关如何为 Lambda 函数创建具有 .NET 5.0 自定义运行时的项目的信息,请参阅使用 AWS Toolkit for Visual Studio 探索 .NET 5

有关其他使用案例,请参阅如何使用 AWS Lambda 的示例

Lambda 会自动替您监控 Lambda 函数,并通过 Amazon CloudWatch 报告各项指标。要监控和诊断函数,请参阅使用 Amazon CloudWatch 诊断和监控 AWS Lambda 函数