Python Lambda böyle bir dosya veya dizin bulunamadı çalışma zamanı sorunu
Böyle bir dosya veya dizin bulunamadığına dair bir hatayı geri döndüren bir lambda işlevim var.
Açık olmak gerekirse, aşağıdaki resim lambda'mda var olan dosya yapısını göstermektedir ve aradığım dizinin var olduğu açıktır.
Lambda işlevindeki mevcut dosya yapım
Aldığım Hata Mesajı:
[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 aşağıdadır:
import os
import json
def lambda_handler(event, context):
print(event)
os.chdir("config")
loginInfo = json.load(open('secrets.json'))
return loginInfo
Dizini config olarak değiştirmemin nedeni secrets.json dosyama erişebilmem.
Lütfen bunun yeniden üretilmesi için yeterli ayrıntı olup olmadığını bana bildirin.
Yanıtlar
Lambda olarak çalıştırmak, geliştirme makinenizde çalıştırmakla aynı şey değildir. Yapılandırmayı okumak istiyorsanız - birkaç seçeneğiniz vardır:
- Env değişkenleri
- Yapılandırma dosyanızı s3'e yükseltin ve oradan okuyun
- AWS parametre deposunu kullanın ve yapılandırmayı buradan okuyun,
Yerel olarak çalıştırmanız gerekiyorsa kontrol edebilirsiniz aws sam cli.
https://github.com/awslabs/aws-sam-cli
template.ymlLambda işlevinizin kurulumuyla varsayılan bir bulut bilgisi tanımlamanızı gerektirir .
Sonunda sadece yürüt
sam local invoke -e lambda-event.json
Burada yayınlanan ayrıntıları görmezden geliyorum - değerli olduklarından eminim - ve bir teğete geçeceğim ve sırları ele aldığınız için, gelecekteki kanıtlanmış sırlar yönetimi politikasına yatırım yapmaya değer olduğunu belirteceğim.
https://dev.to/dvddpl/where-do-you-keep-credentials-for-your-lambda-functions-5dno
AWS Secrets Manager'ı Python (Lambda Konsolu) ile Kullanma