语境
我正在使用 Go 开发一个 AWS Lambda 函数,我的依赖项之一是gopkg.in/h2non/bimg.v1有一个依赖项:libvips 7.42+ 或 8+(推荐 8.4+)。
问题
问题是,在我的本地计算机中,lambda 处理程序正在工作,但是当我部署它时,会出现此错误:
START RequestId: b4becbd1-3fca-4aed-9574-8df0e3d13c9e Version: $LATEST
/var/task/main: error while loading shared libraries: libvips.so.42: cannot open shared object file: No such file or directory
END RequestId: b4becbd1-3fca-4aed-9574-8df0e3d13c9e
REPORT RequestId: b4becbd1-3fca-4aed-9574-8df0e3d13c9e Duration: 42.36 ms Billed Duration: 100 ms Memory Size: 512 MB Max Memory Used: 12 MB
RequestId: b4becbd1-3fca-4aed-9574-8df0e3d13c9e Process exited before completing request
我的构建命令是:
GOOS=linux GOARCH=amd64 go build -o main main.go
我尝试过的
我尝试在启用选项的情况下构建它c-shared:
GOOS=linux GOARCH=amd64 go build -buildmode=c-shared -o main main.go
但也遇到了一个错误,一个不同的错误;
START RequestId: 9b90df21-1025-463b-89b1-1a4ee31f295c Version: $LATEST
fork/exec /var/task/main: permission denied: PathError
null
END RequestId: 9b90df21-1025-463b-89b1-1a4ee31f295c
REPORT RequestId: 9b90df21-1025-463b-89b1-1a4ee31f295c Duration: 0.77 ms Billed Duration: 100 ms Memory Size: 512 MB Max Memory Used: 30 MB Init Duration: 1.84 ms
我有两个选择(?):
使用完整的 Go 库重写
生成一个库,其中包含打包到 Go 二进制文件中的 libvips 库。
莫回无
相关分类