サーバーレスフレームワークv1.0.0を使用して、サービスルートに「requirements.txt」があり、その内容は依存するpythonパッケージのリストです(リクエストなど)。
ただし、これらの依存関係がパッケージの一部としてインストールされていないように見えるので、結果のデプロイされた関数は失敗します
「モジュール「ハンドラ」をインポートできません:リクエストという名前のモジュールはありません」
私はそれがサーバーレスでpipをインストールすると思いますが、私の結果のZipファイルは小さく、明らかにそれを実行していません。これを行うのはそのラムダのためですか?もしそうなら、私は何が欠けていますか?)
これを行うために何が必要で、どのように機能するかに関するドキュメントはありますか? pipがこれらをインストールしたり、awsラムダ側にインストールしたりするのはサーバーレスですか?
serverless-python-requirements
と docker をインストールする必要があります
$ npm install serverless-python-requirements
次に、以下をserverless.yml
に追加します
plugins:
- serverless-python-requirements
custom:
pythonRequirements:
dockerizePip: non-linux
CLIでpython仮想環境がアクティブになっていることを確認してください。
$ source venv/bin/activate
Pipを使用して依存関係をインストールします。CLIでは、ターミナルテキストの左側にあるvenv
によって、envがアクティブかどうかを確認できます。
(venv) $ pip install <NAME>
(venv) $ pip freeze > requirements.txt
Dockerを開いていることを確認してから、通常どおりサーバーレスをデプロイします
$ serverless deploy
何が起こるかは、serverless-python-requirements
がラムダ環境を使用してdockerでpythonパッケージをビルドし、残りのコードでアップロードする準備ができていることです。
これで serverless-python-requirements を使用できます。純粋なPythonおよびネイティブコンパイルが必要なライブラリ(Dockerを使用))の両方で機能します。
Requirements.txtからの依存関係を自動的にバンドルし、PYTHONPATHで利用可能にするサーバーレスv1.xプラグイン。
サーバーレス> = v1.12が必要
このgit repo readmeファイルに記載されている手順に従います- https://github.com/shyam454/Flask_AWS
仮想環境のインストールを作成Python dependancies requirements.txt file deploy
Readmeファイルには、コマンドを使用して段階的に記述されています。
簡単にする必要があります。
サーバーレスフレームワークはpip install
を処理しません。ソリューションについては https://stackoverflow.com/a/39791686/1111215 を参照してください