A tedious because Lambda's Python 3.8 runtime does not include all of the typical build tools to generate Weasyprint's dependencies.
Also included here are steps to generate fonts, because Lambda doesn't have any and while it is interesting to look at a fully formatted document where all of the characters are .notdef glyphs, it's more productive to be able to read your pretty new PDF file.
The files in this gist are "flat" because gist does not allow us to show directories, so note the following dir structure: