Fungsi Lapisan Lambda untuk Kepingan Salju

Aug 16 2020

Saya telah mengikuti metode standar untuk membuat Layer Lambda di Snowflake.

[dalam instance AWS EC2] rm -rf snowflake mkdir -p snowflake / python / lib / python3.7 / site-packages pip3 install --no-cache-dir --ignore-diinstal --upgrade snowflake-connector-python - t kepingan salju / python / lib / python3.7 / situs-paket cd kepingan salju; rm -f snowflake.zip; zip -r kepingan salju.zip.

Saya dapat membuat Layer Lambda dan kemudian menambahkannya ke fungsi Lambda saya. Serta memvalidasi bahwa pustaka terpasang, tetapi ketika saya memanggil fungsi Lambda, itu gagal

impor snowflake.connector

[ERROR] Runtime.ImportModuleError: Tidak dapat mengimpor modul 'lambda_function': Tidak ada modul bernama 'snowflake'

Apakah ada perpustakaan Lambda kepingan salju atau panduan terperinci tentang apa yang mungkin salah di sini. Saya membangun lapisan lambda sepanjang waktu dengan cara ini dan biasanya proses di atas berfungsi.

Jawaban

BlackMetalOwl Aug 24 2020 at 03:30

Masalahnya ternyata persyaratan di 3.7. Saya menambahkan yang berikut ini ke kreasi perpustakaan saya dan itu berfungsi dengan baik:

Saya mengubah versi python default di fungsi Lambda saya menjadi 3.7 agar sesuai dengan instance python yang saya gunakan untuk mengkompilasi perpustakaan, lalu saya menambahkan yang berikut ini ke dalam kode saya:

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