Python Lambda에서 해당 파일 또는 디렉터리를 찾을 수 없음 런타임 문제

Aug 19 2020

그런 파일이나 디렉터리를 찾을 수 없다는 오류를 반환하는 람다 함수가 있습니다.

명확하게하기 위해 아래 이미지는 내 람다에 파일 구조가 존재 함을 보여주고 내가 찾고있는 디렉토리가 존재한다는 것이 분명합니다.

람다 함수의 현재 파일 구조

내가받는 오류 메시지 :

[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로 변경하는 이유는 secrets.json 파일에 액세스 할 수 있기 때문입니다.

이것이 재현하기에 충분한 세부 사항인지 알려주십시오.

답변

3 balderman Aug 19 2020 at 13:56

Lambda로 실행하는 것은 개발 머신에서 실행하는 것과 다릅니다. 구성을 읽으려면 몇 가지 옵션이 있습니다.

  1. 환경 변수
  2. 구성 파일을 s3로 업데이트하고 거기에서 읽습니다.
  3. AWS 파라미터 스토어를 사용하고 거기에서 구성을 읽습니다.
TraychoIvanov Aug 20 2020 at 21:00

로컬에서 실행해야하는 경우 aws sam cli.

https://github.com/awslabs/aws-sam-cli

template.yml람다 함수 설정으로 기본 클라우드 형식을 정의해야합니다 .

결국 그냥 실행

sam local invoke -e lambda-event.json

Markonick Aug 21 2020 at 23:49

나는 여기에 게시 된 세부 정보를 무시하고 있습니다-나는 그것들이 가치가 있다고 확신합니다-그리고 당신이 비밀을 다루고 있기 때문에 미래 증명 비밀 관리 정책에 투자 할 가치가 있다고 언급 할 것입니다.

https://dev.to/dvddpl/where-do-you-keep-credentials-for-your-lambda-functions-5dno

Python과 함께 AWS Secrets Manager 사용 (Lambda 콘솔)