Lambda 동기식 호출 문제를 해결하려면 어떻게 해야 하나요?

2분 분량
0

AWS Lambda 함수를 동기적으로 호출하도록 설정했지만 대상이 시작되지 않습니다. 이 문제를 해결하려면 어떻게 해야 하나요? Lambda 콘솔을 통해 Lambda 함수를 호출하면 해당 함수가 동기적으로 호출되나요 아니면 비동기적으로 호출되나요? -또는- Lambda 함수를 한두 번 더 재시도하도록 설정한 후에도 Lambda 함수가 재시도되지 않는 이유가 무엇인가요?

해결 방법

Lambda 함수를 동기적으로 호출한 후 호출이 실패하는 경우 다음과 같은 원인 때문일 수 있습니다.

  • Lambda가 코드에 포함된 작업을 수행할 권한이 없습니다.
  • Lambda 함수를 호출하는 AWS 서비스에 충분한 권한이 없습니다.
  • Lambda가 비동기적으로 호출됩니다.
  • Lambda는 비동기적 호출 및 스트림 호출에 대한 대상만 지원하고 동기적 호출에는 지원하지 않습니다.

동기적 호출 문제를 해결하려면 다음 단계를 따르세요.

1.    Lambda 함수가 호출되는 방식을 결정합니다. 함수가 AWS CLI를 사용하여 호출되나요? 함수가 AWS 서비스를 통해 호출되나요?

2.    AWS 서비스가 Lambda 함수를 동기적으로 호출하는지 비동기적으로 호출하는지 확인합니다.

3.    다음 명령을 사용하여 Lambda 함수를 동기적으로 호출합니다.

aws lambda invoke --function-name my-function --cli-binary-format raw-in-base64-out --payload '{ "key": "value" }' response.json

200 상태 코드가 보고되었는지 또는 명령이 오류를 반환하는지 확인합니다.

4.    Lambda 함수 재시도 동작은 동기적 호출 시 클라이언트에 의해 제어된다는 점을 기억하세요. AWS Lambda 콘솔의 재시도(Retry attempts) 구성은 비동기적 호출로 제한됩니다. 클라이언트가 Lambda 로그를 확인하는 대신 요청을 재시도하는지 확인하세요.

5.    Lambda 콘솔에서 호출되는 Lambda 함수는 항상 동기적 호출이라는 점을 기억하세요.

6.    동기적 호출 재시도 동작은 각 서비스의 이벤트 소스 매핑에 따라 AWS 서비스마다 다릅니다.

자세한 내용은 이벤트 기반 호출을 참조하세요.

7.    Lambda 함수의 코드가 일관적인지 동일한 메시지를 여러 번 처리할 수 있는지 확인하세요.

8.    Lambda 함수가 반환하는 모든 오류를 식별 및 해결합니다.

자세한 내용은 Lambda 함수 실패 문제를 해결하려면 어떻게 해야 하나요?를 참조하세요.

9.    여전히 문제를 해결할 수 없는 경우 AWS Support에 사례를 개설하세요. 그리고 다음 정보를 제공하세요.

  • Lambda 함수 ARN.
  • 포함된 모든 서비스로 설정된 Lambda 함수의 워크플로우.
  • 문제가 간헐적인지 지속적인지에 대한 세부 정보.
  • 문제가 발생한 시점부터 .txt 형식으로 된 전체 CloudWatch 로그. 이러한 CloudWatch 로그는 제한 시간 문제, 초기화 기간 및 권한 문제를 포함하는 Lambda 함수 오류를 식별하는 데 사용됩니다.
  • UTC로 표시된 시간대 또는 타임스탬프와 관련된 문제의 정확한 타임스탬프.

참고: AWS Support 담당자는 보안 및 개인 정보 보호상의 이유로 고객 CloudWatch 로그에 액세스할 수 없습니다.


관련 정보

Lambda 호출 모드 비교

Lambda 함수 호출

AWS Lambda 대상 소개

AWS 공식
AWS 공식업데이트됨 일 년 전