外部のライブラリを利用してのAWS Lambdaの設定

今回は外部のライブラリを使用しての AWS Lambda の設定を行います。

【関連記事】
AWS LambdaでS3にファイルがアップロードされたのを検知する
AWS LambdaでS3にファイルがアップロードされたら、加工して別フォルダにファイルを作成する(Python)
AWS Lambdaをpython-lambda-localとlambda-uploaderを使ってローカル開発してみる

今回実施する内容として、zipファイルをAWSマネージメントコンソールからアップしての方法となります。

前提として前回の「AmazonLinuxでpyenvを利用してPython3.6の仮想環境の構築(Vagrant)」で仮想環境の構築を行っておきます。

Lambda関数の作成

さて、前回の項目の最後の部分ですが、AmazonLinux に python3.6 の仮想環境を作り、pandas をインストールしました。

次に同じフォルダで Lambda の実行ファイルとなる「lambda_function.py」を作成します。

 

以下を作成します。

pandas を使っていますがこちらでは表示だけで。

外部ライブラリを使えているかの確認になります。

さて、続けて同一フォルダでzip圧縮ファイルを作成します。

 

こちらのファイルでアップするファイルの準備はできました。

 

Lambdaの関数をAWSマネージメントコンソールで作成

Lambdaの管理画面から「一から作成」を選択し、ランタイムは「python3.6」で新しい関数を作成します。

 

次に「コードエントリタイプ」で「.zipファイルをアップロード」を選択し、作成した「lambda.zip」をアップロードします。

 

次にトリガーの設定をします。

以前に実施したようにS3にファイルが上がったものをトリガーにします。

 

トリガーは以下のように設定しました。

 

今回はロールは特に意識せず以前のものを利用しています。

また、アップしたファイルが大きいので、インラインコードでの編集は実施できません。

Lambda 関数の圧縮したデプロイパッケージのサイズが 3MB を超える場合は、Lambda コンソールでインラインコードを編集する機能を使用することはできません。
https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/limits.html

ファイル変更の際はzipファイルを都度アップロードする必要があります。

 

さて、上記で実行環境は整いましたのでS3にファイルをアップロードします。

今回、アップロードしたファイルは以下でした。

 

結果は CloudWatch でログストリームとして出力されます。

無事、結果が出力されています。

外部モジュールを読み込んだことで、メモリーの利用も大きくなっているようです。

外部モジュールを使えることでかなりのシステムが Lambda を利用して作れることがわかりました。

今回はこれまでで。

【関連記事】
AWS LambdaでS3にファイルがアップロードされたのを検知する
AWS LambdaでS3にファイルがアップロードされたら、加工して別フォルダにファイルを作成する(Python)
AWS Lambdaをpython-lambda-localとlambda-uploaderを使ってローカル開発してみる