語境我正在使用 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
- 1 回答
- 0 關注
- 211 瀏覽
添加回答
舉報
0/150
提交
取消