如何解决在AWS Lambda中运行Flow.js时会发生“共享内存不足”错误
我正在尝试使用NodeJS 12 child_process.spawn()
方法在Flow内部运行AWS Lambda,并努力获得正确的结果。当我使用--help
参数仅针对基本信息调用流可执行文件时,它运行良好。但是,当尝试进行实型检查时,我遇到Out of shared memory
崩溃。
这就是我所说的二进制文件:
import { spawn } from 'child_process'
const FLOW_BINARY = '/var/task/flow/flow'
let args = [
'check','--sharedmemory-log-level','1','--verbose','--verbose-flowlib',//'--max-workers',// tried to limit number of workers
//'--temp-dir=/tmp/flow',// tried to explicitly specify temp directory
'.',]
const options = {
'cwd': '/var/task/flow/','stdio': ['pipe','pipe','pipe'],}
spawn(FLOW_BINARY,args,options)
二进制文件的执行以退出代码15结尾:
executable=/var/task/flow/flow
version=0.137.0
No saved state available
Parsing
Out of shared memory:
Raised by primitive operation at file "src/heap/sharedMem.ml",line 256,characters 60-70
Called from file "src/heap/workerCancel.ml",line 27,characters 6-10
我也已经尝试专门针对与系统库完全匹配的Amazon Linux 2编译Flow我自己,但是没有发现任何区别。我对OCaml和Flow代码库不是很熟悉,所以也许我只是缺少一些基本的主体或配置参数。如果有人可以帮助我了解共享内存的使用或为我指明方向,这将非常有帮助。如果有帮助,我也很乐意将一些构建标志传递给自定义Flow构建。
非常感谢:)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。