[AWS Lambda] Pillowをレイヤー化

AWS Lambdaはサーバーレスアーキテクチャの一部として、様々なタスクを自動化するために非常に便利なツールです。しかし、Lambda関数内で画像処理を行いたい場合、Pillow(Python Imaging Library、またはPIL)が必要です。今回のガイドでは、Cloud9を使用してLambda関数内でPillowをインストールし、画像処理のためにLambdaをセットアップするステップを解説します。さらに、Pillowを含むカスタムLambda Layerを作成する手順も紹介します。AWS LambdaでPillowを活用して、画像処理をシームレスに実行しましょう。

普通にインストールしたものだとエラーになる

LambdaでPillowを使おうと思ってインストールしたが下記エラー。

ImportError: cannot import name ‘_imaging’ from ‘PIL’

ライブラリファイルを用意

Cloud9で最小環境を作成

ターミナルからPillowをインストール

Administrator:~/environment $ pip install Pillow -t .
Collecting Pillow
Using cached Pillow-9.5.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB)
Installing collected packages: Pillow
Successfully installed Pillow-9.5.0

後は、ダウンロードしたファイルを含めてLayer化すればよい。

レイヤー化の手順は下記を参照。

[AWS Lambda] 使用モジュールのレイヤー化