Lambda-Layer-Funktion für Snowflake

Aug 16 2020

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

BlackMetalOwl Aug 24 2020 at 03:30

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"