Apache PDFBox®とはPDFをゴニョゴニョするためのJavaのオープンソースライブラリです。
AWS LambdaではJava8のランタイムを使えるので、これをAWS Lambda上で動かすこと自体は特に難しいことではないのですがちょっとだけ注意点があったので記事に残します。
注意点
Lambda実行時の仕様として/tmp
以外のフォルダは書き込みなどのアクセス権が制限されていますが、PDFBoxのデフォルトの動作としてfont cacheを更新しようとするのでその際にアクセス権の関係でエラーになります。
これを回避するにはpdfbox.fontcache
というシステムプロパティを/tmp
にする必要があります。
たとえばLambdaのハンドラー関数実行後、PDFBoxを使う前に
ハンドラー関数
System.setProperty("pdfbox.fontcache", "/tmp");
とすることなどで回避できます。