Funzione Lambda Layer per Snowflake

Aug 16 2020

Ho seguito il metodo standard per creare un Lambda Layer in Snowflake.

[in un'istanza 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 fiocco di neve/python/lib/python3.7/site-packages cd fiocco di neve; rm -f fiocco di neve.zip; zip -r fiocco di neve.zip .

Posso creare il livello Lambda e quindi aggiungerlo alla mia funzione Lambda. Oltre a convalidare che la libreria è collegata, ma quando chiamo la funzione Lambda, non riesce

importa snowflake.connector

[ERRORE] Runtime.ImportModuleError: impossibile importare il modulo 'lambda_function': nessun modulo denominato 'fiocco di neve'

Ci sono librerie Lambda a fiocco di neve o guide dettagliate su cosa potrebbe andare storto qui. Costruisco sempre strati lambda in questo modo e di solito il processo sopra funziona.

Risposte

BlackMetalOwl Aug 24 2020 at 03:30

Il problema si è rivelato essere un requisito su 3.7. Ho aggiunto quanto segue alla creazione della mia libreria e ha funzionato bene:

Ho modificato la versione predefinita di Python nella mia funzione Lambda in 3.7 in modo che corrisponda all'istanza di Python che ho utilizzato per compilare la libreria, quindi ho aggiunto quanto segue nel mio codice:

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