2016-11-09 96 views
1

我有一个运行AWS的非常基本的node.js示例,我需要修改代码以在“请求”模块上添加依赖项。如何创建具有依赖项的AWS nodejs lambda函数

我明白你需要将它打包成一个带有必要节点模块的zip文件。

我下载了index.js并添加了代码。我创建的package.json:

{ "name": "function", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "zip": "zip function.zip package.json *.js node_modules" }, "dependencies": { "aws-sdk": "^2.4.10", "request": "^1.0" } }

我使用NPM安装在依赖拉。这使用模块及其依赖关系填充了node_modules子文件夹。

然后我只是压缩了这个,但AWS控制台不会上传它。

这个问答&一个Creating a lambda function in AWS from zip file告诉我拉上正常,但使用NPM像这样: `NPM运行拉链

> [email protected] zip /Users/paul_tanner/Desktop/index 
> zip function.zip package.json *.js node_modules 

    adding: package.json (deflated 36%) 
    adding: index.js (deflated 73%) 
    adding: node_modules/ (stored 0%)` 

尝试上载和测试这之前我打开它,以检查包括依赖关系。他们不是。

只是为了它的地狱,我也尝试上传产生的“function.zip”。再次,AWS Lambda不会上传它。

所以问题是应该如何创建并上传具有依赖关系的AWS Lambda函数?

回答

0

Linux压缩工具对我来说工作得很好, 查看你显示的zip命令的输出,我认为你唯一缺少的是递归选项(-r)。试试这个:

# zip -r function.zip package.json *.js node_modules 

如果文件太大,不能直接上传,在这种情况下使用S3你存储打包的功能,最后将其加载到LAMBDA。