Как использовать 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 теперь полно странных каталогов, но, по крайней мере, все работает.