为了账号安全,请及时绑定邮箱和手机立即绑定

将共享库添加到 AWS Lambda Go 二进制文件

将共享库添加到 AWS Lambda Go 二进制文件

Go
jeck猫 2023-08-14 17:25:23
语境我正在使用 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 directoryEND RequestId: b4becbd1-3fca-4aed-9574-8df0e3d13c9eREPORT 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: $LATESTfork/exec /var/task/main: permission denied: PathErrornullEND RequestId: 9b90df21-1025-463b-89b1-1a4ee31f295cREPORT 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 库。
查看完整描述

1 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

还有另一种选择 - 将所有 .so 文件与二进制文件一起放入 zip 存档中,并将 zip 作为 lambda 上传。所以,你的成就内容应该是这样的


╰─ unzip -l function.zip

Archive:  function.zip

  Length      Date    Time    Name

---------  ---------- -----   ----

  6764336  10-08-2020 01:01   imgconvert

   284008  06-19-2020 09:16   libexif.so.12

   276072  08-22-2019 08:14   libjpeg.so.62

   155824  12-10-2015 02:17   libpng12.so.0

   468376  10-01-2019 03:37   libtiff.so.5

 12261600  10-08-2020 00:48   libvips.so.42

  3579016  10-08-2020 00:45   libwebp.so.7

    85328  10-08-2020 00:45   libwebpdemux.so.2

   205696  10-08-2020 00:45   libwebpmux.so.3


查看完整回答
反对 回复 2023-08-14
  • 1 回答
  • 0 关注
  • 137 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信