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() а также импортировать все библиотеки и функции ниже этой функции.

Другие вопросы по тегам