ฟังก์ชัน Lambda Layer สำหรับ Snowflake

Aug 16 2020

ฉันได้ทำตามวิธีมาตรฐานในการสร้าง Lambda Layer ใน Snowflake แล้ว

[ในอินสแตนซ์ 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 เกล็ดหิมะ / python / lib / python3.7 / ไซต์แพ็คเกจ cd เกล็ดหิมะ; rm -f snowflake.zip; zip -r snowflake.zip

ฉันสามารถสร้างแลมบ์ดาเลเยอร์แล้วเพิ่มลงในฟังก์ชันแลมบ์ดาได้ เช่นเดียวกับตรวจสอบว่าไลบรารีถูกเชื่อมต่อ แต่เมื่อฉันเรียกใช้ฟังก์ชันแลมบ์ดามันล้มเหลว

นำเข้า snowflake.connector

[ข้อผิดพลาด] Runtime.ImportModuleError: ไม่สามารถนำเข้าโมดูล 'lambda_function': ไม่มีโมดูลชื่อ 'snowflake'

มีห้องสมุด Lambda เกล็ดหิมะหรือคำแนะนำโดยละเอียดเกี่ยวกับสิ่งที่อาจเกิดขึ้นที่นี่ ฉันสร้างเลเยอร์แลมบ์ดาตลอดเวลาในลักษณะนี้และโดยปกติกระบวนการข้างต้นจะใช้ได้ผล

คำตอบ

BlackMetalOwl Aug 24 2020 at 03:30

ปัญหานี้กลายเป็นข้อกำหนดใน 3.7 ฉันเพิ่มสิ่งต่อไปนี้ในการสร้างห้องสมุดของฉันและมันก็ใช้ได้ดี

ฉันเปลี่ยนเวอร์ชัน python เริ่มต้นในฟังก์ชัน Lambda เป็น 3.7 เพื่อให้ตรงกับอินสแตนซ์ python ที่ฉันใช้ในการคอมไพล์ไลบรารีจากนั้นฉันเพิ่มสิ่งต่อไปนี้ลงในโค้ด

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