ローカルでLambda開発を行っていたが、Chrome Driverでエラーが発生。
今後も同じ事態に遭遇するかと思うので、対応をメモ????
Contents
エラー発生
筆者環境は、
- 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 ←追加