![](/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.