Lambda 함수 실패 문제를 해결하려면 어떻게 해야 합니까?
AWS Lambda 함수를 호출하려고 하면 실패하고 오류가 반환됩니다. Lambda 함수 실패 문제를 해결하려면 어떻게 해야 합니까?
해결 방법
Lambda 함수 오류를 해결하려면 먼저 이 문서에 나열된 하나 이상의 AWS 서비스 및 기능을 사용하여 오류의 원인을 확인합니다. 그런 다음 제공된 링크를 따라 각 문제에 대한 문제 해결 모범 사례를 검토합니다.
사용 권한 오류 식별 및 문제 해결
Lambda 배포 패키지에 대한 보안 권한이 올바르지 않으면 다음 오류 중 하나가 표시됩니다.
- EACCES: permission denied, open '/var/task/index.js'
- cannot load such file -- function
- [Errno 13] Permission denied: '/var/task/function.py'
AWS Identity and Access Management(IAM) 사용자(또는 사용자가 가정하는 역할)에 함수를 호출할 권한이 없는 경우 다음 오류가 발생합니다.
User: arn:aws:iam::123456789012:user/developer is not authorized to perform: lambda:InvokeFunction on resource: my-function
Lambda 사용 권한 오류를 해결하려면 다음을 수행합니다.
AWS CloudTrail에서 Lambda 로그 파일 항목을 검토합니다. Lambda를 호출하는 요청자는 함수를 호출하는 데 필요한 AWS Identity and Access Management(IAM) 권한이 있어야 합니다. 필요한 권한을 부여하려면 Lambda 함수 권한을 업데이트합니다.
자세한 내용은 AWS Lambda 로그 파일 항목 이해, AWS Lambda ID 및 액세스 문제 해결 및 IAM: lambda:InvokeFunction not authorized를 참조하세요.
코드 오류 식별 및 문제 해결
Lambda 코드에 문제가 있는 경우 다양한 유형의 오류가 표시됩니다. 좀 더 일반적인 Lambda 코드 관련 오류는 다음과 같습니다.
- Unable to marshal response: Object of type AttributeError is not JSON serializable
- Issue: The AWS SDK included on the runtime is not the latest version
- (Node.js) Function returns before code finishes executing
- KeyError
Lambda 코드 오류를 해결하려면 다음을 수행합니다.
1. Amazon CloudWatch Logs에서 Lambda를 확인합니다.
CloudWatch를 사용하여 함수 코드로 생성된 모든 로그를 보고 잠재적인 문제를 식별할 수 있습니다. 자세한 내용은 AWS Lambda에 대한 Amazon CloudWatch Logs 액세스를 참조하세요. 함수 로깅에 대한 자세한 내용은 사용 중인 프로그래밍 언어에 대한 다음 Lambda 함수 로깅 지침을 참조하세요.
- Python Lambda 함수 로깅 지침
- Node.js Lambda 함수 로깅 지침
- Java Lambda 함수 로깅 지침
- Go Lambda 함수 로깅 지침
- C# Lambda 함수 로깅 지침
- PowerShell Lambda 함수 로깅 지침
- Ruby Lambda 함수 로깅 지침
참고: 함수가 스택 추적을 반환하는 경우 스택 추적의 오류 메시지가 오류의 원인을 지정합니다.
2. AWS X-Ray를 사용하여 코드 성능 병목 현상을 식별합니다. Lambda 함수가 다운스트림 AWS 리소스, 마이크로서비스, 데이터베이스 또는 HTTP 웹 API를 사용하는 경우 AWS X-Ray를 사용하여 코드 성능 문제를 해결할 수 있습니다. 자세한 내용은 AWS X-Ray에서 AWS Lambda 사용을 참조하세요.
3. 함수의 배포 패키지가 필요한 종속성을 가져올 수 있는지 확인합니다. 사용 중인 프로그래밍 언어에 대한 배포 패키지 지침을 따릅니다.
- Python Lambda 배포 패키지 지침
- Node.js Lambda 배포 패키지 지침
- Java Lambda 배포 패키지 지침
- Go Lambda 배포 패키지 지침
- C# Lambda 배포 패키지 지침
- PowerShell Lambda 배포 패키지 지침
- Ruby Lambda 배포 패키지 지침
참고: 또는 Lambda 계층을 사용하여 배포 패키지 외부에 종속성을 추가할 수 있습니다.
4. (컨테이너 이미지로 배포된 코드의 경우) 런타임 인터페이스 클라이언트를 설치하고 이미지를 올바르게 배포하는지 확인합니다. 사용 중인 프로그래밍 언어에 대한 컨테이너 이미지 지침을 따릅니다.
- Python Lambda 컨테이너 이미지 지침
- Node.js Lambda 컨테이너 이미지 지침
- Java Lambda 컨테이너 이미지 지침
- Go Lambda 컨테이너 이미지 지침
- C# Lambda 컨테이너 이미지 지침
- Ruby Lambda 컨테이너 이미지 지침
네트워킹 오류 식별 및 문제 해결
Lambda 네트워킹 구성에 문제가 있는 경우 다양한 유형의 오류가 표시됩니다. 가장 일반적인 Lambda 네트워킹 관련 오류는 다음과 같습니다.
함수가 Virtual Private Cloud(VPC)에 있는 경우 인터넷 액세스가 끊어지거나 시간이 초과되면 다음 오류가 표시됩니다.
connect ETIMEDOUT 176.32.98.189:443
Task timed out after 10.00 seconds
함수가 있는 VPC가 탄력적 네트워크 인터페이스 제한에 도달하면 다음 오류가 표시됩니다.
ENILimitReachedException: The elastic network interface limit was reached for the function's VPC.
Transmission Control Protocol(TCP) 연결이 끊어지면 다음 오류가 나타납니다.
Connection reset by peer
Lambda 네트워킹 오류를 해결하려면 다음을 수행합니다.
1. 함수가 도달하려고 하는 엔드포인트에 대한 유효한 네트워크 경로가 있는지 확인합니다. 자세한 내용은 VPC의 리소스에 액세스하도록 Lambda 함수 구성을 참조하세요.
2. (Amazon VPC에 연결된 함수의 경우) 함수가 인터넷에 액세스할 수 있는지 확인합니다. 자세한 내용은 Amazon VPC에 연결된 함수에 대한 인터넷 액세스 권한을 부여하려면 어떻게 해야 합니까?를 참조하세요. 또한 VPC에서 Lambda 함수의 제한 시간 초과 문제를 해결하려면 어떻게 해야 합니까?도 참조하세요.
참고: VPC 구성을 검토한 후 함수 코드가 퍼블릭 엔드포인트에 도달하지 못하는 이유를 확인할 수 없는 경우 VPC 흐름 로그를 켭니다. VPC 흐름 로그를 사용하면 VPC와 나가는 모든 네트워크 트래픽을 볼 수 있으므로 특정 요청이 거부되었거나 라우팅되지 않은 이유를 파악할 수 있습니다. 자세한 내용은 Lambda의 네트워킹 문제 해결을 참조하세요.
조절 오류 식별 및 문제 해결
함수가 조절되면 다음 오류가 표시됩니다.
Rate exceeded
429 TooManyRequestsException
Lambda 조절 오류를 해결하려면 다음을 수행합니다.
Lambda에 대한 CloudWatch 지표를 검토합니다. 자세한 내용은 AWS Lambda CloudWatch 지표를 참조하세요.
모니터링할 주요 지표:
- ConcurrentExecutions
- UnreservedConcurrentExecutions
- Throttles
참고: Lambda 함수 호출 요청이 함수가 동시성 한도를 확장하거나 초과할 수 있는 것보다 더 빨리 도착하면 요청이 실패하고 429 조절 오류가 발생합니다. 자세한 내용은 AWS Lambda 함수 조정을 참조하세요. 또한 "Rate exceeded" 및 429 "TooManyRequestsException" 오류와 함께 Lambda 함수가 조절되는 문제를 해결하려면 어떻게 해야 합니까?
모든 API 500 및 502 호출 오류 식별 및 문제 해결
호출 요청이 실패하면 다음 502 또는 500 서버 측 오류 중 하나가 표시됩니다.
- InvalidRuntimeException
- InvalidSecurityGroupIDException
- InvalidZipFileException
- KMSAccessDeniedException
- KMSNotFoundException
- 계정에 대한 하이퍼 플레인 ENI의 최대 한도를 초과했습니다.
- SubnetIPAddressLimitReachedException
Lambda API 500 및 502 호출 오류를 해결하려면 다음을 수행합니다.
Lambda 함수를 호출할 때 502 및 500 오류를 해결하려면 어떻게 해야 합니까?의 지침을 따릅니다. 발생 가능한 오류 목록(설명 포함)은 Lambda 호출 API 참조에서 오류를 확인하세요.
컨테이너 이미지 오류 식별 및 문제 해결
컨테이너 이미지를 사용 중이고 컨테이너 이미지에 문제가 있는 경우 다음 오류 중 하나가 표시됩니다.
- "errorType": "Runtime.InvalidEntrypoint"
- Error: You are using an AWS CloudFormation template, and your container ENTRYPOINT is being overridden with a null or empty value.
Lambda 컨테이너 이미지 오류를 해결하려면 다음을 수행합니다.
Lambda의 컨테이너 이미지 문제 해결의 지침을 따릅니다.
참고: 오류의 원인이 되는 문제의 유형을 잘 모르는 경우 이 문서의 Lambda 코드 오류 식별 및 문제 해결 섹션의 지침을 따릅니다.
관련 정보
관련 콘텐츠
- 질문됨 일 년 전lg...
- 질문됨 9달 전lg...
- 질문됨 일 년 전lg...
- 질문됨 6달 전lg...
- 질문됨 일 년 전lg...
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 일 년 전
- AWS 공식업데이트됨 3년 전