Я хочу запустить код 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