Sharp on AWS Amplify 后端 Lambda 导致构建失败

Sharp on AWS Amplify Backend Lambda Causing Build to Fail

我是 aws amplify 的新手,我有一个 amplify 应用程序,它有一个使用 sharp 作为依赖项的后端 lambda 函数。当我推送到 git 以触发部署时,我的构建失败了,我认为是由于 vips/vips8 没有找到明显的依赖关系。

相关日志

2022-05-31T18:26:18.714Z [INFO]: [0mError: Packaging lambda function failed with the error [0m
                                 [0mCommand failed with exit code 1: npm install --no-bin-links --production[0m
                                 [0msh: prebuild-install: command not found[0m
                                 [0m../src/common.cc:24:10: fatal error: vips/vips8:  [0m
                                 [0m #include <vips/vips8>[0m
                                 [0m          ^~~~~~~~~~~~[0m
                                 [0mcompilation terminated.[0m
                                 [0mmake: *** [Release/obj.target/sharp-linux-x64/src/common.o] Error 1[0m
                                 [0mgyp ERR! build error [0m
                                 [0mgyp ERR! stack Error: `make` failed with exit code: 2[0m
                                 [0mgyp ERR! stack     at ChildProcess.onExit (/root/.nvm/versions/node/v14.19.0/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)[0m
                                 [0mgyp ERR! stack     at ChildProcess.emit (events.js:400:28)[0m
                                 [0mgyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:282:12)[0m
                                 [0mgyp ERR! System Linux 4.14.246-187.474.amzn2.x86_64[0m
                                 [0mgyp ERR! command "/root/.nvm/versions/node/v14.19.0/bin/node" "/root/.nvm/versions/node/v14.19.0/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"[0m
                                 [0mgyp ERR! cwd /codebuild/output/src927006233/src/create-react-app-auth-amplify/amplify/backend/function/S3Trigger71b5b76d/src/node_modules/sharp[0m
                                 [0mgyp ERR! node -v v14.19.0[0m
                                 [0mgyp ERR! node-gyp -v v5.1.0[0m
                                 [0mgyp ERR! not ok [0m
                                 [0mnpm WARN S3Trigger71b5b76d@2.0.0 No repository field.[0m

运行 amplify push 从我的 windows 框中打包 lambda 并部署它工作得很好,问题仅在它从 github 拉出并尝试时通过放大构建平台 运行。我是运行宁节点 v 16

感谢任何想法!我的 google-foo 这次让我失望了。

我有完全相同的问题。为了使其在带有放大推送的 lambda 上工作,我必须 运行 backend/function/function_name/src 文件夹 npm install --arch=x64 --platform=linux sharp 中的以下内容。但是当推送到 git 时,触发的部署以同样的方式失败。

根据the installation guide for AWS Lambda你可以将以下命令作为preinstall脚本添加到package.jsonpackage.json您的放大 lambda:

{
  "name": "file-storage-get-s3-signed-link",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "preinstall": "SHARP_IGNORE_GLOBAL_LIBVIPS=1 npm install --arch=x64 --platform=linux --libc=glibc sharp"
  }
}