Python Lambda tidak ada file atau direktori seperti itu yang ditemukan masalah waktu berjalan
Saya memiliki fungsi lambda yang mengembalikan kesalahan sehingga tidak ada file atau direktori yang ditemukan.
Untuk lebih jelasnya gambar di bawah ini menunjukkan struktur file yang ada di lambda saya dan jelas bahwa direktori yang saya cari memang ada.
Struktur file saya saat ini dalam fungsi lambda
Pesan Kesalahan yang saya terima:
[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")
Di bawah ini adalah lambda_handler:
import os
import json
def lambda_handler(event, context):
print(event)
os.chdir("config")
loginInfo = json.load(open('secrets.json'))
return loginInfo
Alasan mengapa saya mengubah direktori menjadi config adalah agar saya dapat mengakses file secret.json saya.
Tolong beritahu saya jika ini cukup detail untuk direproduksi.
Jawaban
Menjalankan sebagai Lambda tidak sama dengan menjalankan mesin dev Anda. Jika Anda ingin membaca config - Anda memiliki beberapa opsi:
- Variabel env
- Unggah file konfigurasi Anda ke s3 dan baca dari sana
- Gunakan penyimpanan parameter AWS dan baca konfigurasi dari sana,
Jika Anda perlu menjalankannya secara lokal, Anda dapat memeriksanya aws sam cli
.
https://github.com/awslabs/aws-sam-cli
Ini mengharuskan Anda untuk menentukan cloudformation default template.yml
dengan pengaturan fungsi lambda Anda.
Pada akhirnya jalankan saja
sam local invoke -e lambda-event.json
Saya mengabaikan detail yang diposting di sini - saya yakin itu berharga - dan akan bersinggungan dan menyebutkan bahwa karena Anda menangani rahasia, ada baiknya berinvestasi dalam kebijakan pengelolaan rahasia bukti di masa depan.
https://dev.to/dvddpl/where-do-you-keep-credentials-for-your-lambda-functions-5dno
Menggunakan AWS Secrets Manager dengan Python (Lambda Console)