Amazon web services `共享内存不足`在AWS Lambda内运行Flow.js时发生错误

Amazon web services `共享内存不足`在AWS Lambda内运行Flow.js时发生错误,amazon-web-services,aws-lambda,ocaml,flow,Amazon Web Services,Aws Lambda,Ocaml,Flow,我试图使用NodeJS 12child\u process.spawn()方法在内部运行,并努力获得正确的结果。当我使用--help参数调用flow executable以获取基本信息时,它运行良好。然而,当我尝试进行真正的类型检查时,共享内存中出现了崩溃 这就是我如何称呼二进制: 从'child_process'导入{spawn} const FLOW_BINARY='/var/task/FLOW/FLOW' 设args=[ “检查”, '--sharedmemory日志级别''1', “--

我试图使用NodeJS 12
child\u process.spawn()
方法在内部运行,并努力获得正确的结果。当我使用
--help
参数调用flow executable以获取基本信息时,它运行良好。然而,当我尝试进行真正的类型检查时,共享内存中出现了
崩溃

这就是我如何称呼二进制:

从'child_process'导入{spawn}
const FLOW_BINARY='/var/task/FLOW/FLOW'
设args=[
“检查”,
'--sharedmemory日志级别''1',
“--冗长”,
“--详细流库”,
//'--max workers',1',//试图限制工作人数
//'--temp dir=/tmp/flow',//试图显式指定temp目录
'.',
]
常量选项={
“cwd”:“/var/task/flow/”,
'stdio':['pipe','pipe','pipe','pipe'],
}
繁殖(流_二进制、参数、选项)
二进制文件的执行以退出代码15结束:

executable=/var/task/flow/flow
版本=0.137.0
没有可用的保存状态
解析
共享内存不足:
由文件“src/heap/sharedMem.ml”中的原语操作引发,第256行,字符60-70
从文件“src/heap/workerCancel.ml”调用,第27行,字符6-10
我已经尝试过自己专门为AmazonLinux2编译Flow,完全匹配系统库等等,但没有看到任何区别。我对OCaml和Flow代码库不是很熟悉,所以我可能只是缺少一些基本的原则或配置参数。如果有人能帮助我了解共享内存的使用情况或为我指明方向,那将非常有帮助。如果有帮助的话,我也很乐意将一些构建标志传递给自定义流构建


非常感谢:)

我不熟悉flow或Nodejs,所以我在这里暗中拍摄。AWS Lambda运行时环境没有
/dev/shm
,因此,如果您调用的
spawn
函数需要使用共享进程内存,那么您需要找到一个解决方法。感谢您提到这一点,我肯定会进一步探讨Lambda的这一方面。我以前在Lambda中运行过很多二进制文件,但从未遇到过这个问题,但也许我只是幸运而已。我还尝试将worker的数量减少到1,假设不需要共享内存。也许有一种方法可以强制流至少在开始时运行单线程。谢谢