Pythonで作成したLambdaをローカルでデバックできるように、ローカルで動かすための手順を紹介します。python–lambda–localというモジュールを使用します。
以下の記事の続きとなっていますので、まずは以下の記事を参考にAWSのLambda上で動作させてみるのをおすすめいたします。

前提
筆者のローカル環境は以下の通りです。
- pyenv: stable 2.3.31
- python: 3.7.3
- pip 23.2.1
- selenium 4.1.0
python 3.7.3の準備で躓く場合には以下も参考にどうぞ。

先に本記事の最終形の共有
最終的なディレクトリ構成は以下のようになります。
今回使用するソースコード(lambda_function.py)はこちら。
event.jsonファイルは以下の通り。実行環境がローカルであることを示します。
以下のコマンドを実行した際に、ローカル環境でLambdaが起動します。
python-lambda-local -t 100 -f lambda_handler app/lambda_function.py test/event.json
ローカルでLambdaを動かすまでの手順
ローカル環境上にもchromedriverをダウンロードしましょう。
(すでに実施済みの方は不要です)
headless-chromiumは今回使わないですが、一応ダウンロードしておきます。
curl -SL https://chromedriver.storage.googleapis.com/2.37/chromedriver_linux64.zip > chromedriver.zip
curl -SL https://github.com/adieuadieu/serverless-chrome/releases/download/v1.0.0-37/stable-headless-chromium-amazonlinux-2017-03.zip > headless-chromium.zip
unzip -o chromedriver.zip -d .unzip -o headless-chromium.zip -d .
python-lambda-localをインストールします。
~/D/g/selenium_test ❯❯❯ pip install python-lambda-local
./test/event.jsonファイルを作成します。lambda_handler関数のeventに渡る引数となります。
次に、lambda_handler.pyを準備します。
if文の中で、localの場合には不要なオプションを追加しないようにしています。
(これらのオプションが含まれるとローカルでseleniumが起動しないです)
あとはプログラムの中で使用する環境変数を設定しましょう。
先程ダウンロードした2つのファイルを指定します。
ローカルからLambdaを実行します。
-tオプションでタイムアウト時間を渡しています。
ローカルでもLambdaが動くことを確認できました。
これでわざわざAWS上でLambdaを実行しなくても手元で動作確認できるようになりますね。
残りは、GitHubリポジトリで本ソースコードを管理して、masterに変更を加えた際にLambdaにもソースコードが反映されるようになればより使いやすくなりますね。
(その話は別途記事にしましょう)
ここまでご覧いただき、ありがとうございました。