私は単純な "ポリゴンのポイント"操作にShapelyを利用するAWS pythonラムダ関数を記述しようとしています。私は、ShapelyをインストールしたAWS linux EC2インスタンスを作成し、スクリプトを作成しました。私はその後、EC2インスタンスからlinux固有のlibgeos_c.so.1バイナリをダウンロードし、ラムダ関数と同じディレクトリに存在するように(サーバレスフレームワーク経由で)バンドルしました。しかし、一度私はスクリプトが "ライブラリを見つけることができませんでしたまたは任意のバリエーションのいずれかをロード..."のため、スクリプトが実行されません展開します。私は、GEOS_LIBRARY_PATH環境変数を介してlibgeos_c.so.1パスを明示的に指し示そうとしても何の効果もありませんでした。これは不可能な展開ですか?AWS Lambda環境で、Python ShapelyライブラリのLIBGEOS_Cを正しくポイントすることはできますか?
ここでは、環境変数を設定し、実際に魅力的にインポートして使用するセカンダリスクリプトを呼び出すコードスニペットを示します。
import sys
import os
import subprocess
here = os.path.dirname(os.path.realpath(__file__))
# Import installed packages (in site-packages)
site_pkgs = os.path.join(here, "venv", "lib", "python2.7", "site-packages")
sys.path.append(site_pkgs)
import json
def hello(event, context):
command = "GEOS_LIBRARY_PATH={} python test_geo_worker.py".format(here + "/libgeos_c.so.1")
foo = subprocess.check_output(command, shell=True)
print foo
ラムダで整然とうまく展開された人はいますか?私のフォールバック計画は、古き良き時代のポストグル/ポストギースに戻って行くことですが、ダイナモ/ラムダスタックでこれを構築しようと考えています。
この問題はこれまで解決されましたか? – dcinzona
解決方法を見つけましたか?私は文字通り同じ問題にぶつかりました – Graeme