Как использовать Weasyprint с AWS Lambda? (Джанго и Заппа)

У меня есть простое приложение Django, которое было загружено в AWS Lambda с помощью Zappa.

Этот процесс работал правильно, за одним исключением: cannot load library 'pango-1.0': pango-1.0: cannot open shared object file: No such file or directory. Additionally, ctypes.util.find_library() did not manage to locate a library called 'pango-1.0'

Я использую Weasyprint для генерации файлов PDF. Weasyprint нуждается в Каире и Панго.

Я не знаю, как заставить Pango работать над моей установкой AWS Lambda.

Что я должен сделать, чтобы это работало?

1 ответ

Поэтому, посмотрев в разных местах, я обнаружил, что мне нужны статические версии всех библиотек, требуемых Weasyprint, и что мне нужно поместить их в мой пакет zappa.

К счастью, пользователь github загрузил рабочее репозиторий со статическими требованиями: https://github.com/Prasengupta/weasyprint_for_awslambda

Поэтому все, что мне нужно было сделать, это загрузить его и извлечь все папки в корне моего приложения django (папки должны находиться на том же уровне, что и файл zappa_settings.json).

Затем мне просто нужно было выполнить команду обновления zappa, чтобы загрузить все эти файлы в мою установку AWS Lambda, и это сработало!

Мое приложение Django теперь полно странных каталогов, но, по крайней мере, все работает.

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