我试图在Google函数上运行一个shell脚本。
我使用Node作为框架,并尝试了不同的方法来运行脚本:execSync
、execFileSync
、spawnSync
等等:
module.exports.main = function() {
try {
const output = require('child_process').execSync(__dirname + '/run.sh', [],
{
stdio: 'inherit',
shell: '/bin/bash'
});
}
catch (error) {
process.exit(error.status);
}
}
我的行为很不稳定。总的来说,我认为它曾经工作过一次,但是剩下的时间我要么得到一个connection error
,什么都没有发生,要么函数“成功地”终止,但是没有输出来自shell脚本的任何东西,所以我不知道它是否运行。
更准确地说,当函数“失败”时,我看到的日志行只有以下几行:
函数执行启动 函数执行时间为122 ms,结束时状态为:“连接错误”
当模式失败和运行时,我无法检测到它的存在。
精确复制步骤:
main
index.js
(module.exports.main = ...
)run.sh
只包含#! /bin/bash
echo "hi"
发布于 2019-04-06 05:39:02
我找到的解决方案是切换到IBM函数。它们使您能够运行码头映像,因此执行任何二进制文件都是可能的。
不过,我对Google功能失败的原因的怀疑是,它可能内存不足。但这只是猜测
https://stackoverflow.com/questions/55163290
复制相似问题