簡體   English   中英

無法部署 NodeJS AWS Lambda 函數。 Object.fs.openSync 中的錯誤

[英]Cannot deploy a NodeJS AWS Lambda Function. Error at Object.fs.openSync

所以直到幾天前,我曾經通過一個簡短而簡單的 shell 腳本來部署我的 Node.JS AWS Lambda 函數,它運行得非常好。

現在我不知道為什么或我做了什么不同的事情,但出於某種原因,在每次部署我的 lambda 函數后,我現在在通過 Alexa 調用該函數時收到以下錯誤:

19:47:58
module initialization error Error
module initialization error
Error

19:47:59
START RequestId: 596b2724-68f9-11e8-aaa7-d9ff3044ed9d Version: $LATEST
START RequestId: 596b2724-68f9-11e8-aaa7-d9ff3044ed9d Version: $LATEST

19:47:59
module initialization error: Error at Object.fs.openSync (fs.js:646:18) 
at Object.fs.readFileSync (fs.js:551:33) 
at Object.Module._extensions..js (module.js:662:20) 
at Module.load (module.js:565:32) 
at tryModuleLoad (module.js:505:12) 
at Function.Module._load (module.js:497:3) 
at Module.require (module.js:596:17) 
at require (internal/module.js:11:18)

module initialization error: Error
at Object.fs.openSync (fs.js:646:18)
at Object.fs.readFileSync (fs.js:551:33)
at Object.Module._extensions..js (module.js:662:20)
at Module.load (module.js:565:32)
at tryModuleLoad (module.js:505:12)
at Function.Module._load (module.js:497:3)
at Module.require (module.js:596:17)
at require (internal/module.js:11:18)

19:47:59
END RequestId: 596b2724-68f9-11e8-aaa7-d9ff3044ed9d

19:47:59
REPORT RequestId: 596b2724-68f9-11e8-aaa7-d9ff3044ed9d  
Duration: 218.74 ms  Billed Duration: 300 ms 
Memory Size: 128 MB Max Memory Used: 20 MB

REPORT RequestId: 596b2724-68f9-11e8-aaa7-d9ff3044ed9d  
Duration: 218.74 ms Billed Duration: 300 ms 
Memory Size: 128 MB Max Memory Used: 20 MB  

現在到了真正讓我不知道如何解決這個問題的部分,(我猜這可能是我 Mac 上的本地問題)。 如果我從我的 Lambda 函數下載/導出以前工作的部署包並直接重新上傳 Zip 文件,它就可以工作

如果我解壓縮文件並再次重新壓縮,我會收到錯誤消息

無需我更改代碼。 這就是讓我想知道我的 mac 或文件系統上的壓縮是否有問題的原因?

我正在通過 nvm 使用 Mac OSX High Sierra、Node 6.10 / 8.10。 lambda 上的代碼在 6.10 和 8.10 上運行

任何建議表示贊賞:)

編輯:最后一次工作提交是在 Windows PC 上完成的...我有點擔心文件系統更改是否會以某種方式破壞壓縮/上傳。 我會嘗試更深入地了解這一點。

我們正在將代碼的 .zip 存檔上傳到 AWS Lambda。

我們的問題是 .zip 文件中的文件沒有世界可讀的權限。

好的,唯一能夠解決這個問題的是回到我從 OSX 所做的最后一次提交並忽略我在 Windows 上所做的最后 3 次提交。

看起來有一些路徑或編碼更改是通過在解決此錯誤的 Windows 上提交而引入的。 不幸的是,我在提交差異中看不到那些。

因此,在這里尋找操作系統之間的差異可能很重要。

我面臨着同樣的問題。 這在 Windows 上對我有用-

  1. 導出 lambda 函數(下載 .zip 文件)
  2. 提取文件
  3. 再次壓縮這些文件
  4. 將此新 zip 上傳到 lambda

我過去遇到過 Lambda 和 Windows 機器代碼的問題。 解決方案(對我而言)是從目錄外部chmod -R 644 lambdaDirectory ,修復 Windows 對權限所做的任何事情。 我不知道什么會導致下載/重新上傳工作,也許 AWS 正在對清單做些什么?

我也遇到了來自使用第三方壓縮工具的其他機器的 zip 文件的問題,因為它們將整個目錄壓縮到一個名稱相同的存檔中,而不僅僅是內容。 IE 您不希望lambdaDirectory/包含在您的lambdaDirectory.zip 要解決此問題, zip -r lambdaDirectory.zip ./*從目錄內部運行zip -r lambdaDirectory.zip ./*

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM