Lambda-Layer-Funktion für Snowflake
Ich habe die Standardmethode zum Erstellen einer Lambda-Ebene in Snowflake befolgt.
[in einer AWS EC2-Instanz] 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 Schneeflocke.zip; zip -r Schneeflocke.zip .
Ich kann die Lambda-Ebene erstellen und sie dann meiner Lambda-Funktion hinzufügen. Überprüfen Sie außerdem, ob die Bibliothek angehängt ist, aber wenn ich die Lambda-Funktion aufrufe, schlägt sie fehl
import snowflake.connector
[FEHLER] Runtime.ImportModuleError: Modul „lambda_function“ konnte nicht importiert werden: Kein Modul mit dem Namen „snowflake“
Gibt es Schneeflocken-Lambda-Bibliotheken oder detaillierte Anleitungen dazu, was hier möglicherweise schief läuft? Ich baue Lambda-Layer die ganze Zeit auf diese Weise und normalerweise funktioniert der obige Prozess.
Antworten
Das Problem stellte sich als Anforderung für 3.7 heraus. Ich habe meiner Bibliothekserstellung Folgendes hinzugefügt und es hat gut funktioniert:
Ich habe die Standard-Python-Version in meiner Lambda-Funktion auf 3.7 geändert, damit sie mit der Python-Instanz übereinstimmt, die ich zum Kompilieren der Bibliothek verwendet habe, und dann habe ich Folgendes in meinen Code eingefügt:
ssh -i ${PEM_FILE} ${EC2_HOST} "cp -r snowflake/python/lib/python3.7/site-packages/* dblayer/python/lib/python3.7/site-packages"