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로 변경하는 이유는 secrets.json 파일에 액세스 할 수 있기 때문입니다.
이것이 재현하기에 충분한 세부 사항인지 알려주십시오.
답변
Lambda로 실행하는 것은 개발 머신에서 실행하는 것과 다릅니다. 구성을 읽으려면 몇 가지 옵션이 있습니다.
- 환경 변수
- 구성 파일을 s3로 업데이트하고 거기에서 읽습니다.
- AWS 파라미터 스토어를 사용하고 거기에서 구성을 읽습니다.
로컬에서 실행해야하는 경우 aws sam cli
.
https://github.com/awslabs/aws-sam-cli
template.yml
람다 함수 설정으로 기본 클라우드 형식을 정의해야합니다 .
결국 그냥 실행
sam local invoke -e lambda-event.json
나는 여기에 게시 된 세부 정보를 무시하고 있습니다-나는 그것들이 가치가 있다고 확신합니다-그리고 당신이 비밀을 다루고 있기 때문에 미래 증명 비밀 관리 정책에 투자 할 가치가 있다고 언급 할 것입니다.
https://dev.to/dvddpl/where-do-you-keep-credentials-for-your-lambda-functions-5dno
Python과 함께 AWS Secrets Manager 사용 (Lambda 콘솔)