作者メモ
AmplifyでLambda関数を新しく作成した際に出てきたエラーで覚えておきたいので、メモしておきます。
初心者なので、間違えている場合はコメントいただけると嬉しいです。
経緯と問題
Amplifyで2個目のLambdaを作成。
コードが出来上がったので、AWSコンソール上に反映させようと、”amplify push"を行いました。
# amplify push
すると、
🛑 Could not find a pipenv site-packages directory at /Users/nnoti/.local/share/virtualenvs/kadailambdaget2/lib/python3.11/site-packages
指定されたパスにpipenv仮想環境のsite-packagesディレクトリが見つからないとでてしまいました。
Lambdaを新しく作成する度に仮想環境を構築しないといけないの…?
そんなバカなと思い、丸一日調べて頭を悩ませていました。
解決策
1つ目のLamdbaで使用していた仮想環境がターミナルに入ったままだった。
AmplifyでLambda関数を新しく作成した際に、特定の仮想環境(pipenv)がターミナルでアクティブだったため起こったエラーでした。
Lambdaを新しく作成する度に仮想環境を構築しないといけないというめんどくさい事はしなくて大丈夫そうでした。
# pipenv --venv
仮想環境がアクティブか確認
/Users/nnoti/.local/share/virtualenvs/kadailambdaget2
返ってきました仮想環境がアクティブになっていました。
# exit
仮想環境から抜けます。
Courtesy Notice: Pipenv found itself running within a virtual environment, so it will automatically use that environment, instead of creating its own for any project. You can set PIPENV_IGNORE_VIRTUALENVS=1 to force pipenv to ignore that environment and create its own instead. You can set PIPENV_VERBOSITY=-1 to suppress this warning.
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
To activate this project's virtualenv, run pipenv shell.
Alternatively, run a command inside the virtualenv with pipenv run.
Installing dependencies from Pipfile.lock (3b26c9)...
仮想環境にいないので、pipenvから怒られますが、気にしなくても大丈夫です。
Deployment state saved successfully.
無事にAmplifyにpushできました。
凡ミスでしたが、新人エンジニアあるあるかもしれません。
先輩に相談して気がつきました。
AmplifyでLambdaを作成するときはターミナル上で仮想環境にいないか要確認です。
仮想環境を使用後は忘れずに抜けておきましょう。