Funkcja warstwy lambda dla płatka śniegu

Aug 16 2020

Postępowałem zgodnie ze standardową metodą tworzenia warstwy lambda w płatku śniegu.

[w instancji AWS EC2] rm -rf snowflake mkdir -p snowflake / python / lib / python3.7 / site-packages pip3 install --no-cache-dir --ignore-installed --upgrade snowflake-connector-python - t snowflake / python / lib / python3.7 / site-packages cd snowflake; rm -f snowflake.zip; zip -r snowflake.zip.

Mogę utworzyć warstwę Lambda, a następnie dodać ją do mojej funkcji Lambda. Oprócz sprawdzenia, czy biblioteka jest dołączona, ale kiedy wywołuję funkcję Lambda, nie działa

import snowflake.connector

[BŁĄD] Runtime.ImportModuleError: Nie można zaimportować modułu „lambda_function”: brak modułu o nazwie „snowflake”

Czy są jakieś biblioteki Lambda z płatkami śniegu lub szczegółowe przewodniki po tym, co może się tutaj nie udać. Warstwy lambda buduję cały czas w ten sposób i zwykle powyższy proces działa.

Odpowiedzi

BlackMetalOwl Aug 24 2020 at 03:30

Problem okazał się być wymaganiem w wersji 3.7. Dodałem następujące elementy do mojej biblioteki i działało dobrze:

Zmieniłem domyślną wersję Pythona w mojej funkcji Lambda na 3.7, aby pasowała do instancji Pythona, której użyłem do kompilacji biblioteki, a następnie dodałem do mojego kodu:

ssh -i ${PEM_FILE} ${EC2_HOST} "cp -r snowflake/python/lib/python3.7/site-packages/* dblayer/python/lib/python3.7/site-packages"