aws sam build не может создавать пакеты, требующие paramiko из-за ошибки: PythonPipBuilder: ResolveDependencies

Я изучал основы AWS SAM и успешно развернул ряд лямбда-выражений вместе с зависимостями и другими сервисами AWS. Однако, похоже, я столкнулся с проблемой при попытке развернуть лямбду, которая зависит от некоторых конкретных зависимостей.

Вот мой файл requirements.txt:

paramiko==2.4.2
cryptography==2.6.1
bcrypt==3.1.6
pynacl==1.3.0

Этот файл находится в "packageRoot / myCodeUri / requirements.txt"

Когда я запускаю sam build, я получаю следующую ошибку:

2019-08-27 11:18:18 Running PythonPipBuilder:ResolveDependencies

Build Failed
Error: PythonPipBuilder:ResolveDependencies - {pynacl==1.3.0(wheel), cryptography==2.6.1(wheel), bcrypt==3.1.6(wheel)}

Об этих (или, по крайней мере, аналогичных) ошибках сообщалось: здесь свыше 8 месяцев назад, но пока нет ответа.

P.S. Первоначально я пробовал это с помощью только paramiko, поскольку это единственная библиотека, которую использует мой скрипт, как я понял; зависимости должны быть автоматически извлечены во время сборки, однако это тоже не сработало.

Любая помощь была бы замечательной?


person user3062260    schedule 27.08.2019    source источник
comment
Вы пробовали запускать sam build с --use-container?   -  person Dunedan    schedule 27.08.2019
comment
У меня есть, но выдает другую ошибку, говоря, что не может найти файл requirements.txt. Я также пробовал использовать аргумент -m и вручную указал на него, но получил ту же ошибку.   -  person user3062260    schedule 27.08.2019
comment
Если нет другого способа указать ему путь к файлу требований? Я чувствую, что это проблема с пипом, которую можно решить с помощью обновления пипа - проблема (я считаю) в том, что среда выполнения python 3.6 создается с настройками по умолчанию для сборки, и вы не можете обновить пип, а затем установить paramiko в той же итерации через requirements.txt - если есть способ создать контейнер с уже обновленным pip до последней версии, то это может решить эту проблему? (Я могу ошибаться)   -  person user3062260    schedule 27.08.2019


Ответы (2)


Я получал ту же ошибку с другой зависимостью при запуске sam build. Я смог решить эту проблему, установив wheel в нашу среду python (или venv).

pip install wheel

Этот подход не требовал установки флага --use-container во время работы sam build.

person rahul    schedule 17.01.2021

Мне удалось найти обходной путь для создания и развертывания лямбда-выражений, которым нужна библиотека paramiko, с использованием контейнера докеров в интерактивном режиме. Если у вас возникла такая же проблема, посмотрите здесь.

person user3062260    schedule 29.08.2019