こんにちは、DXCEL WAVEの運営者(@dxcelwave)です!
- AWS Lambdaを用いて自作関数を実行したい。
- AWS Lambda上に用意されていないPythonライブラリを呼び出し、使えるようにしたい。
- 「Import Error」「No Module Named Defined」のエラーを解消したい。
AWS Lambdaとは
AWS Lambdaとは、自身で作成した関数をリクエスト(イベント発生)の都度、自動で実行できるようにするサーバーレスコンピューティングサービスです。
具体的なサービス概要については下記の記事で解説しています。
【AWS Lambda】自作関数をクラウド上で作成・実行する方法|Python・Ruby・Java・Node.js等対応
AWS Lambdaを用いて自作した関数をクラウド上で自動実行する方法を解説します。
Lambda関数にPythonライブラリを追加・使用可能にする手順
以下のような手順のもと、AWS Lambdaに準備されていないPythonライブラリを呼び出し、Lambda関数内で使えるようにします。
手順は「Pythonパッケージの準備」と「Lambda関数の設定」を2つに分けて解説していきます。
Pythonパッケージの準備
- ターミナル(Mac)またはコマンドプロンプト(Windows)を開く
- Pythonパッケージフォルダを作成
- Pythonパッケージフォルダ内に移動
- Pythonパッケージをインストール
- Pythonパッケージフォルダをzip化
Lambda関数とレイヤーの設定
- AWS Lambdaコンソール画面を開く
- Lambda関数を作成
- レイヤーを作成
- PythonパッケージをAWS上にアップロード・必要情報を入力
- 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・Ruby・Java・Node.js等対応
AWS Lambdaを用いて自作した関数をクラウド上で自動実行する方法を解説します。
レイヤーを作成
AWS Lambdaコンソール画面で「レイヤーの作成」ボタンをクリックします。
PythonパッケージをAWS上にアップロード・必要情報を入力
レイヤー作成に必要な情報を入力します。この画面に作成したPythonパッケージをアップロードします。
また、後述では作成したレイヤーとLambdaの関数と紐付けます。その際、関数とレイヤーの「アーキテクチャ」「ランタイム」は同じ条件になる必要がありますため、入力時は注意しましょう。
PythonパッケージとLambda関数の紐付け
最後にアップロードしたPythonパッケージとLambda関数を紐付け、関数内でPythonライブラリを呼び出しできるようにします。
関数の画面(Lambdaマネジメントコンソール > 関数 > 指定の関数を選択)を開きましょう。
関数画面を開くと下部に「レイヤー」設定部分がありますので「レイヤーの追加」をクリックします。
レイヤ追加画面では、「カスタムレイヤー」を選択し、プルダウンで先ほど作成したレイヤーを選択します。
レイヤー選択後は「追加ボタン」をクリックしましょう。
これで全ての手順が完了しました。実際に動作テストを行い、関数が正常に動くか確かめましょう!
最後に
お問い合わせフォーム
上記課題に向けてご気軽にご相談下さい。
お問い合わせはこちら