AWS Lambda - среда выполнения .NET 2.1 - Как добавить добавить ссылку на общую библиотеку - PullRequest
0 голосов
/ 24 октября 2018

Я хочу запустить код C #, который использует собственную библиотеку (https://github.com/CoolProp/CoolProp) в лямбда-выражении AWS.

Я использую PInvoke для ссылки на методы библиотеки:

[DllImport("libCoolProp.so")]

Я включил файл (libCoolProp.so) в пакет, который я загружаю, но этого недостаточно, и при тестировании лямбды я получаю вывод:

Exception: DllNotFoundException

Iисследовал файловую систему, в которой исполняется лямбда, и обнаружил, что основной файл Bootstrap.dll находится внутри каталога * 1013. * Внутри этой папки нет файла libCoolProp.so.

Вместо этого я обнаружилфайл lib.so внутри каталога var/task/. Поэтому я изменил мой DllImport путь на "../task/libCoolProp.so", но исключение все еще остается.

Я также проверяю, существует ли файл, и следующеекод в лямбда-выражении возвращает true:

(new FileInfo("../task/libCoolProp.so")).Exists

Вот файлы папки времени выполнения:

>>> /var/runtime

/var/runtime/liblambdaio.so
/var/runtime/liblambdaruntime.so
/var/runtime/Bootstrap.runtimeconfig.json
/var/runtime/liblambdalog.so
/var/runtime/awslambda.d
/var/runtime/Amazon.Lambda.Core.dll
/var/runtime/Bootstrap.dll
/var/runtime/liblambdaipc.so
/var/runtime/awslambda
/var/runtime/Bootstrap.pdb
/var/runtime/Bootstrap.deps.json

Вот файлы папки задачи:

>>> /var/task

/var/task/Amazon.Lambda.Core.dll
/var/task/MyFunction.runtimeconfig.json
/var/task/Newtonsoft.Json.dll
/var/task/Amazon.Lambda.Serialization.Json.dll
/var/task/MyFunction.deps.json
/var/task/MyFunction.pdb
/var/task/MyFunction.dll
/var/task/CoolProp.so
...