Lambdaのデバッグをしていたらchromedriver unexpectedly exited. status code was 127 lambda

ローカルでLambda開発を行っていたが、Chrome Driverでエラーが発生。

今後も同じ事態に遭遇するかと思うので、対応をメモ????

エラー発生

筆者環境は、

  • M1 Mac Air
  • VS Code

Seleniumを使用するLambda開発時に

chromedriver unexpectedly exited. status code was 127 lambda

どうも、Chrome Driver周りでエラーが出たもよう。

やったこと

Python3.8 → Python3.7

SAM Application作成時に、何気なくPython3.8を選んだのが悪かった。。

Python3.8から3.7に変更します。

パスの書き換え

template.yaml のRuntimeに記載のバージョンを書き換え

Function:
    Type: AWS::Serverless::Function 
    Properties:
        CodeUri: hello_world/
        Handler: app.lambda_handler
        Runtime: python3.7  ←ココ

一応、.vscode/launch.jsonに記載の”runtime”も書き換えておく

{
    "configurations": [
        {
            "type": "aws-sam",
            "request": "direct-invoke",
            "name": "python3.7:HelloWorldFunction (python3.7)",
            "invokeTarget": {
                "target": "template",
                "templatePath": "${workspaceFolder}/python3.7/template.yaml",
                "logicalId": "HelloWorldFunction"
            },
                "lambda": {
                "payload": {},
                "environmentVariables": {},
                "runtime": "python3.7"  ←ココ
            }
        },

Python3.7のインストール

URLはMac用のPythonダウンロードページです。

https://www.python.org/downloads/macos/

3.7でインストーラが用意されているものをダウンロードしてインストールしました。

Lambdaで使うメモリサイズの拡張

上記対応で動作確認をしたが、筆者環境では途中でTimeoutが発生ているようだっった。

そのため、メモリ使用量をデフォルトの128MBから倍の256MBに増やしてトライ。→動作が確認できた。

template.yaml

Function:
    Type: AWS::Serverless::Function 
    Properties:
        # CodeUri: hello_world/
        Handler: app.lambda_handler
        Runtime: python3.7
        Events:
            HelloWorld:
                Type: Api
                Properties:
                    Path: /hello
                    Method: get
        MemorySize: 256   ←追加