Yuta NakataのBlog

Python / AWS / ITについて役立つ情報を発信します

Lambdaでサードパーティライブラリを爆速で使う方法

やりたいこと

AWS Lambdaでサードパーティ製のライブラリを使う方法についてです。 今回はPythonを取り上げます。

結論

  1. 公式で出しているレイヤーを使う
  2. すでに公開されているレイヤーを使う
  3. 自作レイヤーを使う

のいずれかです。上からの順序で試してみることをオススメします。

1. 公式で出しているレイヤーを使う

Pythonでやりたい大体のことは、AWS Wranglerでできます。

ARN一覧表

例えば、

  • 東京リージョン
  • Python3.10
  • arm64

としたとき、

arn:aws:lambda:ap-northeast-1:336392948345:layer:AWSSDKPandas-Python310-Arm64:9

のARNを指定すればOKです(めちゃくちゃ簡単!)。

これだけで、

import pandas as pd
import numpy as np

はできちゃいます(awswranglerがこれらのライブラリをラップしているので)。

そのほか、様々なライブラリがラップ(=awswranglerを使うために、内部的にインストールされている)されています。

github.com

そもそもawswranglerってなに?については、こちらを参照ください。

www.yuta-nakata.net

その他、公式が出しているものにaws lambda powertoolsというものがあります。

Loggerなどに便利です。

aws.amazon.com

2.すでに公開されているレイヤーを使う

awswrangleraws lambda powertoolsでもインストールできないライブラリについてはこちらの方法を参照してください。

すでに先人が用意してしてくれているLayerがあります。

github.com

例えば、

  • 東京リージョン
  • Python3.8

だとしたとき、matplotlibはこの一行でインストールできます。

arn:aws:lambda:ap-northeast-1:770693421928:layer:Klayers-p38-matplotlib:25

3.自作レイヤーを使う

その他、特殊な要件やマイナーなライブラリを使う場合は、自作したレイヤーを使うことになります。

こちらは、様々な情報がネット上にあるので詳細は割愛します。

AWS公式資料は、以下のようになっています。

docs.aws.amazon.com