Asyncpg и AWS Lambda
Я пытаюсь использовать asyncpg с AWS Lambda и получил следующую ошибку при попытке import asyncpg
Unable to import module 'handler': No module named asyncpg.protocol.protocol'
Я импортирую зависимости Python, как в этом ответе с и без виртуальной среды.
UPD. Нашел этот репо с кастомом psycopg2
что хорошо работает с AWS Lambda, но для asyncpg
не нашел такой альтернативы или инструкции по компиляции Lambda-friendly asyncpg
пакет.
1 ответ
Эта библиотека имеет c-bindings, и лямбда не очень хорошо с ними работает. Основной способ справиться с этим - загрузить определенную библиотеку с привязками, предварительно скомпилированными для сред Linux. Основной способ - следовать приведенным здесь инструкциям и убедиться, что библиотека уже скомпилирована в вашем Linux (или Mac, я думаю). Это легко может произойти, просто создав venv и включив его, как указано выше. Вы можете найти похожую проблему здесь. В общем, это обычное явление, и такие структуры, как чаша, пытаются найти обходные пути.
Напишите свой код под def lambdahandler()
а также импортировать все библиотеки и функции ниже этой функции.