2017-07-06 87 views
0

我有一個zip文件,其中包含以下結構(這是歸檔的根,不是嵌套在頂級文件夾中,我知道它是錯誤的常見原因爲AWS-S3-拉姆達部署):AWS Lambda包部署的函數require()的相對路徑,找不到

- support/ 
    - shared.js 
- one.js 
- two.js 

,然後在one.js和two.js:

var shared = require("./support/shared"); 

// ... 

當我在本地運行這段代碼,它的工作原理。我使用aws-sdk將zip文件上傳到AWS-S3,然後使用aws.lambda.createFunction()創建一個具有該名稱和處理程序以及所有內容的函數。創建的函數會顯示在我的Lambda儀表板中,但是當我測試它時,我會得到"Cannot find module './support/shared'"。我也試過var shared = require("./support/shared.js");,並給出"Cannot find module './support/shared.js'"

這是運行時間node6.10。文件名大小寫正確的區分大小寫的lambda。

不應該這個工作?什麼是竅門?

有沒有一種方法可以驗證Lambda正在處理的文件結構,以顯示額外的./support/shared.js文件實際上是將它加到了工作目錄還是它使用的任何文件?

回答

0

問題在於,在Windows上創建的zip文件在其解包時設置了錯誤的chmod權限。這些文件在那裏,但無法訪問,但節點只是提供一個關於找不到的通用警告,而不是文件夾訪問被拒絕。