我已将npm gcloud添加到我的Lambda项目中,当我的Lambda函数启动时它立即失败,我认为它与节点版本有关,但我无法找到任何解决方案
错误:
<?php
$toSearch="moizhusnain@hotmail.com";
$textData=array();
$fla=FALSE;
$file=fopen('text.txt','r') or die('Unable to open file.');
while(!feof($file))
{
$textData[]=trim(preg_replace('/\s\s+/', ' ', fgets($file)));;
}
fclose($file);
for($i=0;$i<count($textData);$i++)
{
if (strcmp($toSearch,$textData[$i])==0)
{
echo "Yes";
}
}
?>
我的依赖项:
module initialization error: Error at Error (native)
at Object.Module._extensions..node (module.js:434:18)
at Module.load (module.js:343:32)
at Function.Module._load (module.js:300:12)
at Module.require (module.js:353:17)
at require (internal/module.js:12:17)
at Object.<anonymous> (/var/task/node_modules/grpc/src/node/src/grpc_extension.js:38:15)
at Module._compile (module.js:409:26)
at Object.Module._extensions..js (module.js:416:10)
at Module.load (module.js:343:32)
答案 0 :(得分:1)
似乎某些节点包使用预编译的二进制文件。所以它需要在目标平台上编译,在您的情况下是Amazon Linux AMI。您可以创建将项目放在其上的Amazon EC2实例,运行npm i
,压缩并在您的电脑上下载,然后在Lambda上传档案。