TL; DR , вот рабочий пакет развертывания лямбда, который совместим с Python 3.6 времени выполнения. [ gdrive ссылка для скачивания ]
Оказывается, очень сложно собрать все необходимое в один почтовый индекс. Я потратил довольно много времени (несколько часов) на ручное копирование библиотечных файлов. Вот шаги, которые я предпринял для создания этого пакета.
- Раскрутка локальной лямбды Python 3.6 среды выполнения docker контейнер
docker run -it --rm lambci/lambda:build-python3.6 bash
Pip установить все зависимости в локальный каталог
mkdir ipopt-lib
PYTHONPATH=$PYTHONPATH:~/ipopt-lib
pip install Cython numpy -t ipopt-lib/
Следовал официальному руководству
для сборки и установки Ipopt из исходного кода
yum install lapack-devel
git clone https://github.com/coin-or/Ipopt.git
cd Ipopt
IPOPTDIR=`pwd`
mkdir $IPOPTDIR/build
cd $IPOPTDIR/build
$IPOPTDIR/configure
make
make install
PKG_CONFIG_PATH=/usr/local/lib/pkgconfig pip install ipopt -t ipopt-lib/
Копирование всех файлов библиотеки вручную по
cp -t ~/ipopt-lib/ /usr/local/lib/lib*
cp -t ~/ipopt-lib/ /usr/lib64/libblas.so* /usr/lib64/liblapack*
cp -t ~/ipopt-lib/ /usr/lib64/libgfortran.so.3*
cp -t ~/ipopt-lib/ /usr/lib64/libstdc++.so*
cp -t ~/ipopt-lib/ /usr/lib64/libquadmath.so.0*
Застегнуть все вместе
cd ~/ipopt-lib
zip -r /root/ipopt-lib.zip *
Копирование на хост-машину
docker cp <CONTAINER_ID>:/root/ipopt-lib.zip ~/Downloads/
Вот все Python пакеты, доступные в этом пакете развертывания (включая пакеты по умолчанию, установленные во время выполнения):
$ pip freeze
appdirs==1.4.3
arrow==0.15.5
attrs==19.3.0
aws-lambda-builders==0.8.0
aws-sam-cli==0.47.0
aws-sam-translator==1.22.0
awscli==1.18.41
binaryornot==0.4.4
boto3==1.12.41
botocore==1.15.41
certifi==2020.4.5.1
chardet==3.0.4
chevron==0.13.1
click==7.1.1
colorama==0.4.3
cookiecutter==1.6.0
Cython==0.29.17
dateparser==0.7.4
distlib==0.3.0
docker==4.2.0
docutils==0.15.2
filelock==3.0.12
Flask==1.0.4
future==0.18.2
idna==2.8
importlib-metadata==1.6.0
importlib-resources==1.4.0
ipopt==0.1.9
itsdangerous==1.1.0
Jinja2==2.11.2
jinja2-time==0.2.0
jmespath==0.9.5
jsonschema==3.2.0
MarkupSafe==1.1.1
numpy==1.18.3
pipenv==2018.11.26
poyo==0.5.0
pyasn1==0.4.8
pyrsistent==0.16.0
python-dateutil==2.8.0
pytz==2019.3
PyYAML==5.3.1
regex==2020.4.4
requests==2.22.0
rsa==3.4.2
s3transfer==0.3.3
serverlessrepo==0.1.9
six==1.14.0
tomlkit==0.5.8
tzlocal==2.0.0
urllib3==1.25.8
virtualenv==20.0.18
virtualenv-clone==0.5.4
websocket-client==0.57.0
Werkzeug==1.0.1
whichcraft==0.6.1
zipp==3.1.0
Тестирование на лямбде с использованием Python 3,6 *
1047 *
Результат
Response:
null
Request ID:
"9bd9fd88-d340-4976-a954-8a727e173933"
Function Logs:
START RequestId: 9bd9fd88-d340-4976-a954-8a727e173933 Version: $LATEST
1.18.3
0.1.9
END RequestId: 9bd9fd88-d340-4976-a954-8a727e173933
REPORT RequestId: 9bd9fd88-d340-4976-a954-8a727e173933 Duration: 0.45 ms Billed Duration: 100 ms Memory Size: 128 MB Max Memory Used: 74 MB Init Duration: 343.99 ms
Приветствия!