Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 无法部署NodeJS AWS Lambda函数。Object.fs.openSync处出错_Node.js_Amazon Web Services_Aws Lambda_Alexa - Fatal编程技术网

Node.js 无法部署NodeJS AWS Lambda函数。Object.fs.openSync处出错

Node.js 无法部署NodeJS AWS Lambda函数。Object.fs.openSync处出错,node.js,amazon-web-services,aws-lambda,alexa,Node.js,Amazon Web Services,Aws Lambda,Alexa,因此,直到几天前,我还使用一个简短的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-aaa

因此,直到几天前,我还使用一个简短的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,节点6.10/8.10。lambda上的代码使用6.10和8.10运行

如有任何建议,欢迎提出:)


编辑:上次工作提交是在windows PC上完成的。。。我有点担心文件系统的改变是否会破坏压缩/上传。我将尝试深入研究这一点。

好的,唯一能够解决这一问题的方法是返回到我在OSX上执行的最后一次提交,忽略我在windows上执行的最后3次提交

似乎在windows上提交时引入了一些路径或编码更改,这些更改在此错误中得到了解决。不幸的是,我无法在提交差异中看到这些


因此,寻找操作系统之间的差异在这里可能很重要。

我在过去遇到过Lambda和来自Windows机器的代码的问题。解决方案(对我来说)是从目录外部
chmod-R 644 lambdaDirectory
,修复Windows对权限所做的任何操作。我不知道是什么导致下载/重新加载工作,也许AWS对清单做了什么


我还遇到了来自使用第三方压缩工具的其他机器的zip文件的问题,因为它们将整个目录压缩到一个名为相同的归档文件中,而不仅仅是内容。IE您不希望
lambdaDirectory/
包含在
lambdaDirectory.zip中。要解决此问题,请从目录中运行
zip-r lambdaDirectory.zip./*

我们正在将代码的.zip存档上载到AWS Lambda


我们的问题是.zip文件中的文件没有世界可读权限。

我也面临同样的问题。这在Windows上对我有效-

  • 导出lambda函数(下载.zip文件)
  • 提取文件
  • 再次压缩那些文件
  • 将此新zip上传到lambda

  • 看起来你的lambda函数与
    fs
    module相关,有错误。嗯,我甚至没有碰那个模块/文件。还有,为什么仅仅通过压缩/解压一个文件会有不同的行为?你试过重新安装那些模块吗?是的,我也安装了一个完整的npm,不幸的是,它没有改变任何东西。