![](/img/trans.png)
[英]AWS Lambda: module initialization error: Error at Error (native) at Object.fs.openSync (fs.js:641:18)
[英]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 上對我有用-
我過去遇到過 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.