Python Lambda ไม่พบไฟล์หรือไดเรกทอรีดังกล่าวปัญหาเวลาทำงาน
ฉันมีฟังก์ชันแลมบ์ดาที่ส่งคืนข้อผิดพลาดที่ไม่พบไฟล์หรือไดเร็กทอรีดังกล่าว
เพื่อความชัดเจนภาพด้านล่างแสดงโครงสร้างไฟล์ที่มีอยู่ในแลมบ์ดาของฉันและเป็นที่ชัดเจนว่ามีไดเร็กทอรีที่ฉันกำลังมองหาอยู่
โครงสร้างไฟล์ปัจจุบันของฉันในฟังก์ชันแลมบ์ดา
ข้อความแสดงข้อผิดพลาดที่ฉันได้รับ:
[ERROR] FileNotFoundError: [Errno 2] No such file or directory: 'config'
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 23, in lambda_handler
os.chdir("config")
ด้านล่างนี้คือ lambda_handler:
import os
import json
def lambda_handler(event, context):
print(event)
os.chdir("config")
loginInfo = json.load(open('secrets.json'))
return loginInfo
สาเหตุที่ฉันเปลี่ยนไดเร็กทอรีเป็น config เพื่อให้ฉันสามารถเข้าถึงไฟล์ secret.json ของฉันได้
โปรดแจ้งให้เราทราบหากมีรายละเอียดเพียงพอที่จะทำซ้ำ
คำตอบ
การทำงานเป็น Lambda ไม่เหมือนกับการทำงานบนเครื่อง dev ของคุณ หากคุณต้องการอ่าน config - คุณมีหลายตัวเลือก:
- ตัวแปร Env
- อัปโหลดไฟล์ config ของคุณเป็น s3 และอ่านจากที่นั่น
- ใช้ที่เก็บพารามิเตอร์ AWS และอ่านการกำหนดค่าจากที่นั่น
หากคุณต้องการเรียกใช้ภายในเครื่องคุณสามารถตรวจสอบaws sam cli
ได้
https://github.com/awslabs/aws-sam-cli
คุณต้องกำหนดค่าเริ่มต้นของ cloudformation template.yml
ด้วยการตั้งค่าฟังก์ชัน lambda ของคุณ
ในท้ายที่สุดเพียงแค่ดำเนินการ
sam local invoke -e lambda-event.json
ฉันไม่สนใจรายละเอียดที่โพสต์ไว้ที่นี่ - ฉันแน่ใจว่ามันมีค่า - และจะพูดแทนเจนต์และพูดถึงว่าเนื่องจากคุณกำลังจัดการกับความลับมันจึงคุ้มค่าที่จะลงทุนในนโยบายการจัดการความลับที่พิสูจน์ได้ในอนาคต
https://dev.to/dvddpl/where-do-you-keep-credentials-for-your-lambda-functions-5dno
การใช้ AWS Secrets Manager กับ Python (Lambda Console)