【AWS Lambda】Pythonパッケージのレイヤー追加・関数での利用方法|No Module Namedエラー対策

こんにちは、Kosei(@kay_diacc2)です!

こんな方におすすめ!
  • AWS Lambdaを用いて自作関数を実行したい。
  • AWS Lambda上に用意されていないPythonライブラリを呼び出し、使えるようにしたい。
  • 「Import Error」「No Module Named Defined」のエラーを解消したい。
目次

AWS Lambdaとは

AWS Lambdaとは、自身で作成した関数をリクエスト(イベント発生)の都度、自動で実行できるようにするサーバーレスコンピューティングサービスです。

具体的なサービス概要については下記の記事で解説しています。

本記事はAWS公式情報(https://aws.amazon.com/)を引用したノウハウを配信しています。

Lambda関数にPythonライブラリを追加・使用可能にする手順

以下のような手順のもと、AWS Lambdaに準備されていないPythonライブラリを呼び出し、Lambda関数内で使えるようにします。

手順は「Pythonパッケージの準備」と「Lambda関数の設定」を2つに分けて解説していきます。

Pythonパッケージの準備

  1. ターミナル(Mac)またはコマンドプロンプト(Windows)を開く
  2. Pythonパッケージフォルダを作成
  3. Pythonパッケージフォルダ内に移動
  4. Pythonパッケージをインストール
  5. Pythonパッケージフォルダをzip化

Lambda関数とレイヤーの設定

  1. AWS Lambdaコンソール画面を開く
  2. Lambda関数を作成
  3. レイヤーを作成
  4. PythonパッケージをAWS上にアップロード・必要情報を入力
  5. PythonパッケージとLambda関数の紐付け

Pythonパッケージの準備

AWS上で利用したいPythonパッケージを準備する手順を紹介します。

ターミナル(Mac)またはコマンドプロンプト(Windows)を開く

Macの場合はターミナル、Windowsの場合はコマンドプロンプトを用いて作業します。後述ではターミナルの画面を例にして解説していきますが、実行するコードはコマンドプロンプトも同じものを活用できます。

Pythonパッケージフォルダを作成

名前が「Python」というパッケージフォルダを作成します。

ターミナル上で下記のように実行しましょう。

mkdir python

Pythonパッケージフォルダ内に移動

上述で作成したPythonパッケージフォルダ内に移動します。下記を実行しましょう。

cd python

Pythonライブラリをインストール

Pythonパッケージフォルダの中にAWS上で使用したいライブラリをインストールします。下記のように入力して実行しましょう。

pip3 install <python package>  -t .

例えば「Pandas」ライブラリを使用できるようにしたい場合は下記のように入力します。

Pythonパッケージフォルダをzip化

必要なPythonライブラリのインストールが終わりましたらPythonパッケージフォルダをzip化します。

※はじめに「Python」と名付けたフォルダを直接zip化するようにしましょう。

これでPythonパッケージの準備は完了です!

Lambda関数とレイヤーの設定

前述で作成したPythonパッケージフォルダをLambdaに登録し、関数実行時に呼び出しできるようにします。

AWS Lambdaコンソール画面を開く

AWSマネジメントコンソールにログインし、AWS Lambdaコンソールを開きましょう。

Lambda関数の作成

既にLambda関数が作成済みの方はこの手順はスキップして問題なしです。本記事では関数の作成方法は割愛しており、別途下記の記事で解説しています。

レイヤーを作成

AWS Lambdaコンソール画面で「レイヤーの作成」ボタンをクリックします。

PythonパッケージをAWS上にアップロード・必要情報を入力

レイヤー作成に必要な情報を入力します。この画面に作成したPythonパッケージをアップロードします。

また、後述では作成したレイヤーとLambdaの関数と紐付けます。その際、関数とレイヤーの「アーキテクチャ」「ランタイム」は同じ条件になる必要がありますため、入力時は注意しましょう。

PythonパッケージとLambda関数の紐付け

最後にアップロードしたPythonパッケージとLambda関数を紐付け、関数内でPythonライブラリを呼び出しできるようにします。

関数の画面(Lambdaマネジメントコンソール > 関数 > 指定の関数を選択)を開きましょう。

関数画面を開くと下部に「レイヤー」設定部分がありますので「レイヤーの追加」をクリックします。

レイヤ追加画面では、「カスタムレイヤー」を選択し、プルダウンで先ほど作成したレイヤーを選択します。

レイヤー選択後は「追加ボタン」をクリックしましょう。

これで全ての手順が完了しました。実際に動作テストを行い、関数が正常に動くか確かめましょう!

最後に

この記事が気に入ったら
フォローしてね!

本記事をシェア!
URLをコピーする
URLをコピーしました!
目次
閉じる