AWS Lambda + Python + Serverless FrameworkのLayerにpipインストール
AWS LambdaのLayerにPythonのライブラリをインストールする方法です。Serverless Frameworkを使用している場合です。
少し前にも似た記事を書いたのですが、そのときはLayerに乗せられずLambda本体にライブラリのイメージが含まれてしまっていました。
前回:Serverless FrameworkとAWS Lambda with Pythonの環境にpipインストール
serverless.yml
に以下のように記述すればLayerにできましたので、メモしておきます。
コメントを書いた2か所が必要です。
service: sample frameworkVersion: '2' provider: name: aws runtime: python3.8 lambdaHashingVersion: 20201221 region: ap-northeast-1 functions: hello: handler: handler.hello layers: # LayerとFunctionの紐づけの設定。 # この書き方で serverless-python-requirements が # 作成してくれるLayerと紐づけてくれる。 - { Ref: PythonRequirementsLambdaLayer } plugins: - serverless-python-requirements custom: pythonRequirements: # この設定でpipライブラリをLayerに保存してくれる。 # これだけではFunctionとLayerの紐づけがなされないので、 # 上記functionsの節にもlayersの記述が必要 layer: true
バージョン情報
serverless@2.18.0
serverless-python-requirements@5.1.0