AWS Lambda
开发人员指南
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

简介:构建 Lambda 函数

您以一个或多个 Lambda 函数 的形式将应用程序代码上传到 AWS Lambda(一种计算服务),此服务可代表您运行代码。AWS Lambda 负责预配置和管理服务器以便在调用时运行代码。

通常,基于 AWS Lambda 的应用程序的生命周期包括编写代码、将代码部署到 AWS Lambda,然后是监控和故障排除。以下是生命周期的每个阶段出现的常见问题:

  • 为 Lambda 函数编写代码 - 支持哪些语言?是否有我需要遵循的编程模型?如何打包我的代码和依赖项以便上传到 AWS Lambda?有哪些可用工具?

     

  • 上传代码并创建 Lambda 函数 - 如何将我的代码包上传到 AWS Lambda?如何告知 AWS Lambda 从何处开始执行我的代码?如何指定像内存和超时这样的计算要求?

     

  • 监控和故障排除 - 对于我的生产中的 Lambda 函数,有哪些可用的指标?如果出现任何故障,如何获取日志或解决问题?

下列部分提供了介绍性信息,而最后的“示例”部分提供了工作示例以帮助您了解。

注意

本主题提供了有关如何开发基于 AWS Lambda 的应用程序的介绍性概览。如何使用部分描述了有关 Lambda 函数和事件源的具体信息,并说明了 AWS Lambda 如何执行您的 Lambda 函数。

为您的 Lambda 函数编写代码

您可以使用 AWS Lambda 所支持的语言编写 Lambda 函数代码。有关受支持的语言的列表,请参阅Lambda 执行环境和可用库。有许多可用于编写代码的工具,例如,AWS Lambda 控制台、Eclipse IDE 和 Visual Studio IDE。不过,可用的工具和选项取决于:

  • 您选择用来编写 Lambda 函数代码的语言。

  • 代码中使用的库。AWS Lambda 运行时提供了一些库,您必须上传您使用的任何其他库。

下表列出了可使用的语言、可用工具和选项。

语言 用于编写代码的工具和选项 更多信息

Node.js

如果您选择的语言不需要编译,则可使用控制台,代码将保存在单个文件中,并且不依赖于任何库。

Java

AWS Toolkit 还会创建部署程序包(部署代码和创建 Lambda 函数中进行了说明)。

C#

AWS Toolkit 还会创建部署程序包(部署代码和创建 Lambda 函数中进行了说明)。

Python

  • AWS Lambda 控制台

  • 您自己的编写环境

如果您选择的语言不需要编译,则可使用控制台,代码将保存在单个文件中,并且不依赖于任何库。

此外,无论您选择哪种语言,都有一个用于编写 Lambda 函数代码的模式。例如,如何编写 Lambda 函数的处理程序方法(即,AWS Lambda 在开始执行代码时首先调用的方法)、如何将事件传递给处理程序、可在代码中使用哪些语句来在 CloudWatch Logs 中生成日志、如何与 AWS Lambda 运行时交互并获取信息(例如,超时前的剩余时间)以及如何处理异常。编程模型部分提供了每种受支持的语言的信息。

注意

在您熟悉 AWS Lambda 后,请参阅使用案例,其中提供的分步说明可帮助您探究端到端体验。

部署代码和创建 Lambda 函数

要创建 Lambda 函数,您首先将代码和依赖项打包到部署程序包中。然后,将部署程序包上传到 AWS Lambda 以创建 Lambda 函数。

创建部署程序包 - 组织代码和依赖项

您必须首先通过特定方式来组织您的代码和依赖项并创建部署程序包。有关创建部署程序包的说明因您选择用来编写代码的语言而异。例如,您可以使用构建插件(例如,Jenkins(针对 Node.js 和 Python)和 Maven(针对 Java))来创建部署程序包。有关更多信息,请参阅 创建部署程序包

在使用控制台创建 Lambda 函数时,控制台会为您创建部署程序包,然后上传该部署程序包以创建 Lambda 函数。

上传部署程序包 - 创建 Lambda 函数

AWS Lambda 提供了 CreateFunction 操作,您可使用此操作创建 Lambda 函数。可使用 AWS Lambda 控制台、AWS CLI 和 AWS 开发工具包创建 Lambda 函数。在内部,所有这些接口都调用 CreateFunction 操作。

除了提供您的部署程序包之外,您还可以在创建 Lambda 函数时提供配置信息,包括 Lambda 函数的计算要求、Lambda 函数中的处理程序方法的名称以及运行时,具体取决于您选择用来编写代码的语言。有关更多信息,请参阅 Lambda 函数

注意

此部分提供了有关开发基于 AWS Lambda 的应用程序的介绍性概览。如何使用描述了有关 Lambda 函数和事件源的具体信息,并说明了 AWS Lambda 如何执行您的 Lambda 函数。

测试 Lambda 函数

如果您的 Lambda 函数旨在处理特定类型的事件,您可以使用示例事件数据通过下列方法之一来测试 Lambda 函数:

  • 在控制台中测试 Lambda 函数。

  • 使用 AWS CLI 测试 Lambda 函数。您可以使用 Invoke 方法调用您的 Lambda 函数并传入示例事件数据。

控制台提供了示例事件数据。事件源发布的示例事件主题中还提供了相同的数据,您可以在 AWS CLI 中使用此数据来调用 Lambda 函数。

监控和故障排除

在您的 Lambda 函数处于生产中后,AWS Lambda 将代表您自动监控函数,并通过 Amazon CloudWatch 报告指标。有关更多信息,请参阅 访问 AWS Lambda 的 Amazon CloudWatch 指标

为帮助您排除函数中的故障,Lambda 会记录您的函数处理的所有请求,并自动将代码生成的日志存储在 Amazon CloudWatch Logs 中。有关更多信息,请参阅 访问 AWS Lambda 的 Amazon CloudWatch 日志

基于 AWS Lambda 的应用程序示例

本指南提供了多个示例以及分步说明。如果您是首次使用 AWS Lambda,建议您尝试以下练习:

  • 入门 - 入门练习提供了基于控制台的体验。在 Python 中编写示例代码。您可以在控制台中编辑代码,将代码上传到 AWS Lambda,然后使用控制台中提供的示例事件数据来测试代码。

     

  • 使用案例 - 如果您无法使用控制台编写代码,则必须创建您自己的部署程序包,并使用 AWS CLI(或开发工具包)创建您的 Lambda 函数。有关更多信息,请参阅 为您的 Lambda 函数编写代码。“使用案例”部分中的大多数示例都使用 AWS CLI。如果您是首次使用 AWS Lambda,建议您尝试下列练习之一。

下列主题提供了其他信息。

编程模型

创建部署程序包

AWS Lambda 函数版本控制和别名

使用 Amazon CloudWatch 诊断和监控 AWS Lambda 函数