2016-11-09 57 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。

相關問題