AWS Lambda
开发人员指南
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用 Node.js 构建 Lambda 函数

您可以在 AWS Lambda 中运行 JavaScript code with Node.js。Lambda 为执行代码来处理事件的 Node.js 提供运行时。您的代码在包含AWS SDK for JavaScript的环境中运行,其中包含来自您管理的 AWS Identity and Access Management (IAM) 角色的凭证。

Lambda 支持以下 Node.js 运行时。

Node.js 运行时

名称 标识符 Node.js 版本 适用于 JavaScript 的 AWS 开发工具包 操作系统

Node.js 12

nodejs12.x

12.13.0

2.536.0

Amazon Linux 2

Node.js 10

nodejs10.x

10.16.3

2.488.0

Amazon Linux 2

Node.js 8.10

nodejs8.10

8.10

2.488.0

Amazon Linux

Lambda 函数使用执行角色来获取将日志写入 Amazon CloudWatch Logs 以及访问其他服务和资源的权限。如果您还没有函数开发的执行角色,请创建一个。

创建执行角色

  1. 打开 IAM 控制台中的“角色”页面

  2. 选择 Create role (创建角色)

  3. 创建具有以下属性的角色。

    • 可信任的实体Lambda

    • 权限AWSLambdaBasicExecutionRole

    • 角色名称 (角色名称)lambda-role

    AWSLambdaBasicExecutionRole 策略具有函数将日志写入 CloudWatch Logs 所需的权限。

您可以稍后向此角色添加权限,或将其与特定于单一函数的其他角色交换。

创建 Node.js 函数

  1. 打开 Lambda 控制台

  2. 选择创建函数

  3. 配置以下设置:

    • 名称my-function

    • 运行时Node.js 12.x

    • 角色选择现有角色

    • 现有角色lambda-role

  4. 选择创建函数

  5. 要配置测试事件,请选择测试

  6. 对于事件名称,输入 test

  7. 选择创建

  8. 要执行函数,请选择测试

控制台将创建一个带有单个名为 index.js 的源文件的 Lambda 函数。您可以在内置代码编辑器中编辑此文件并添加更多文件。要保存您的更改,请选择 Save。然后,要运行代码,请选择 Test (测试)

注意

Lambda 控制台使用 AWS Cloud9 在浏览器中提供集成开发环境。您还可以使用 AWS Cloud9 在您自己的环境中开发 Lambda 函数。有关更多信息,请参阅《AWS Cloud9 用户指南》中的使用 AWS Lambda 函数

index.js 文件导出一个名为 handler 的函数,此函数接受事件对象和上下文对象。这是在调用函数时 Lambda 调用的处理程序函数。Node.js 函数运行时从 Lambda 获取调用事件并将它们传递到处理程序。在函数配置中,处理程序值为 index.handler

每次保存函数代码时,Lambda 控制台都会创建一个部署程序包,它是一个包含函数代码的 ZIP 存档。随着函数开发的进行,您需要将函数代码存储在源代码控制中、添加库和实现部署自动化。首先,通过命令行创建部署程序包并更新代码。

除了调用事件之外,函数运行时还将上下文对象传递给处理程序。上下文对象包含有关调用、函数和执行环境的其他信息。环境变量中提供了更多信息。

您的 Lambda 函数附带了 CloudWatch Logs 日志组。函数运行时将发送有关对 CloudWatch Logs 的每个调用的详细信息。它会中继调用期间函数输出的任何日志。如果您的函数返回错误,则 Lambda 将为错误设置格式,并将其返回给调用方。