通过AWS Lambda控制台编辑器导入模块

时间:2019-05-23 04:34:53

标签: node.js amazon-web-services aws-lambda aws-console

在NodeJS中试用应用程序。具有以下进口

var https = require('https'),
    aws4  = require('aws4')

但是,出现错误

"errorType": "Runtime.ImportModuleError", "errorMessage": "Error: Cannot find module 'aws4'",

使用npm install aws4安装aws4后,在桌面上本地执行代码时代码有效。在AWS Console Lambda编辑器中编辑Lambda脚本时如何安装模块?

1 个答案:

答案 0 :(得分:2)

您无法从Lambda的控制台添加模块。您将必须使用程序包管理器(例如npmyarn)并安装所需的依赖项。这意味着在将函数上传到AWS Lambda之前,请在package.json中声明它们并运行npm/yarn install。将生成一个node_modules文件夹,其中包含所有打包的依赖项。压缩并上传。

您的package.json应该看起来像这样:

{
  "name": "your-project",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "aws4": "^1.8.0",
    "https": "^1.0.0"
  }
}

如果您想简化部署工作,则可能需要研究AWS SAMServerless Framework

请记住,如果您添加的软件包过大(并且过大,根据docs,对于AWS的控制台来说,它只有 2MB 3MB),您可能会丢失可以通过AWS控制台内联编辑代码,这意味着您必须在上载代码之前使用自己的编辑器/ IDE来编辑代码。