2

をインポートすることはできませんが、AWSラムダはエラーをFirestoreしますとすぐに私は追加として、私は、キャッシングのためにGoogleのFirestore(クラウドFirestoreのBETA)を使用したいのですが、私のAWSラムダはPython 3.6の機能に名「cygrpc」

from google.cloud import firestore 
私のPythonスクリプトに

とAWSラムダ関数にZIPをアップロードするには、ラムダテストは

Unable to import module 'MyLambdaFunction': cannot import name 'cygrpc'. 

AWS CloudWatchのログは、エラー時にちょうどその同じエラーメッセージを任意の詳細が含まれていないエラーで戻ってきます。

ラムダ関数はローカルの開発マシン(Windows 10)でうまく動作し、Firestoreにもうまく書き込めます。インポートとFirestore関連のすべての行をコメントアウトすると、AWSでも動作します。

どのように私はこれを解決するために行くことができるヒント?

答えて

1

Firestore用のPythonクライアントは、GRPCのCベースの実装に依存しています。これは、AWS Lambdaではデフォルトでは動作しないようです。

Node.jsのユーザーからも同様の問題が報告されており、building a docker imageの回避方法が記載されています。

これは、ネイティブコードが動作するために必要な他のPythonパッケージを取得するのと同様です。おそらくscikit to workを得るためのこの方法のような何か?私は、これはあなたが正しい方向に軌道に乗るには十分であると思いますが、残念ながら私はAWSラムダ:-(について何も知りません。

0

が同じ問題に遭遇し、私はプラグインserverless-python-requirementsを使用して、それを解決しましたサーバレスのフレームワークと通過のために:

pythonRequirements: 
    dockerizePip: true 

は、基本的にこれはそれがうまくいくドッキングウィンドウコンテナにあなたのCベースのパッケージ(および他のすべてのパッケージ)をインストールし、あなたのラムダFNにそれらをシンボリックリンク

が参考に。ガイドができます見つかった:https://serverless.com/blog/serverless-python-packaging/

プラグイン:https://github.com/UnitedIncome/serverless-python-requirements

関連する問題