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

Node.js 中的 AWS Lambda 部署程序包

要创建 Lambda 函数,首先需要创建 Lambda 函数部署程序包(包含代码和所有依赖项的 .zip 文件)。

您可自行创建部署程序包或直接在 Lambda 控制台中编写代码,在后一种情况下,控制台将为您创建并上传部署程序包,从而创建您的 Lambda 函数。请记下以下内容来确定您是否可使用该控制台创建 Lambda 函数:

  • 简单场景 – 如果自定义代码只需要 AWS 开发工具包库,则可以使用 AWS Lambda 控制台中的内联编辑器。使用控制台可以编辑代码并将代码上传到 AWS Lambda。控制台会将代码及相关的配置信息压缩到 Lambda 服务能够运行的部署程序包中。

    您还可以在控制台中测试代码(使用示例事件数据手动调用代码)。

    注意

    Lambda 服务预装了适用于 Node.js 的 AWS 开发工具包。

  • 高级场景 – 如果编写的代码需要用到其他资源(如使用图形库进行图像处理),或需要使用 AWS CLI 代替控制台,则需要先创建 Lambda 函数部署程序包,然后再使用控制台或 CLI 上传部署程序包。

注意

在创建部署程序包后,您可直接上传该程序包或先将 .zip 文件上传到要在其中创建 Lambda 函数的 AWS 区域中的 Amazon S3 存储桶,然后指定使用控制台或 AWS CLI 创建 Lambda 函数时的存储桶名称和对象键名称。

以下是创建部署程序包的示例过程(在控制台外)。假设您需要创建包含 filename.js 代码文件的部署程序包,并且您的代码使用 async 库。

  1. 打开文本编辑器,并编写您的代码。保存文件(例如,filename.js)。

    在创建 Lambda 函数时,您将使用此文件名指定处理程序。

  2. 在同一目录中,使用 npm 安装您的代码所依赖的库。例如,如果您的代码使用 async 库,则使用以下 npm 命令。

    npm install async
  3. 之后,您的目录将具有以下结构:

    filename.js node_modules/async node_modules/async/lib node_modules/async/lib/async.js node_modules/async/package.json
  4. 压缩文件夹的内容,即您的部署程序包(例如,sample.zip)。

然后,在创建您的 Lambda 函数时指定此 .zip 文件名作为部署程序包。

如果您希望包含您自己的二进制文件 (包括本机二进制文件),只需将这些文件打包为上传的 Zip 文件,然后在从 Node.js 或您之前开始的其他过程中调用这些文件时引用它们 (包括所创建的 Zip 文件中的相对路径)。确保在函数代码开头包含以下内容:process.env[‘PATH’] = process.env[‘PATH’] + ‘:’ + process.env[‘LAMBDA_TASK_ROOT’]

有关在 Lambda 函数程序包中包含本机二进制文件的更多信息,请参阅在 AWS Lambda 中运行可执行文件。另请注意,您需要提供针对 Zip 文件内容的必要权限。有关更多信息,请参阅 Lambda 部署程序包上的权限策略