Python Lambda böyle bir dosya veya dizin bulunamadı çalışma zamanı sorunu

Aug 19 2020

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

3 balderman Aug 19 2020 at 13:56

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:

  1. Env değişkenleri
  2. Yapılandırma dosyanızı s3'e yükseltin ve oradan okuyun
  3. AWS parametre deposunu kullanın ve yapılandırmayı buradan okuyun,
TraychoIvanov Aug 20 2020 at 21:00

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

Markonick Aug 21 2020 at 23:49

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