web-dev-qa-db-ja.com

サーバーレスフレームワーク-Python and Requirements.txt

サーバーレスフレームワークv1.0.0を使用して、サービスルートに「requirements.txt」があり、その内容は依存するpythonパッケージのリストです(リクエストなど)。

ただし、これらの依存関係がパッケージの一部としてインストールされていないように見えるので、結果のデプロイされた関数は失敗します

「モジュール「ハンドラ」をインポートできません:リクエストという名前のモジュールはありません」

私はそれがサーバーレスでpipをインストールすると思いますが、私の結果のZipファイルは小さく、明らかにそれを実行していません。これを行うのはそのラムダのためですか?もしそうなら、私は何が欠けていますか?)

これを行うために何が必要で、どのように機能するかに関するドキュメントはありますか? pipがこれらをインストールしたり、awsラムダ側にインストールしたりするのはサーバーレスですか?

12
Kurt Maile

serverless-python-requirementsdocker をインストールする必要があります

$ 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パッケージをビルドし、残りのコードでアップロードする準備ができていることです。

ここに完全なガイド

10
Gaz_Edge

これで serverless-python-requirements を使用できます。純粋なPythonおよびネイティブコンパイルが必要なライブラリ(Dockerを使用))の両方で機能します。

Requirements.txtからの依存関係を自動的にバンドルし、PYTHONPATHで利用可能にするサーバーレスv1.xプラグイン。

サーバーレス> = v1.12が必要

6
Hendy Irawan

このgit repo readmeファイルに記載されている手順に従います- https://github.com/shyam454/Flask_AWS

仮想環境のインストールを作成Python dependancies requirements.txt file deploy

Readmeファイルには、コマンドを使用して段階的に記述されています。

簡単にする必要があります。

0
shyamkumar

サーバーレスフレームワークはpip installを処理しません。ソリューションについては https://stackoverflow.com/a/39791686/1111215 を参照してください

0
Benny Bauer