Добавить общую библиотеку в двоичный файл AWS Lambda Go - PullRequest
0 голосов
/ 08 марта 2020

Context

Я разрабатываю AWS лямбда-функцию, используя Go, и одна из моих зависимостей gopkg.in/h2non/bimg.v1, которая имеет зависимость: libvips 7.42+ или 8+ (Рекомендуется 8.4+).

Проблема

Проблема в том, что на моем локальном компьютере работает лямбда-обработчик, но при его развертывании возникает такая ошибка:

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  

У меня есть два варианта (?):

  1. Перезаписать с полностью Go библиотекой
  2. Создать библиотеку с библиотека libvips, упакованная в двоичный файл Go.
...