2017-09-19 3 views
0

나는 maria DB에서 데이터를 가져오고 가져온 행을 JSON 객체로 반환하는 aws lambda를 실행 중입니다. JSON 배열의 총 항목 수는 64K입니다.Aws 람다 응답 오류

{ "error": "body size is too long" } 

내가 람다에 대한 구성을 변경하여 모든 64K 행을 보낼 수있는 방법이 있나요 :

는이 오류는 무엇입니까?

답변

1

당신은 람다에 구성을 변경 (6메가바이트 바디 페이로드 크기 limit 넘어)가 64 개 K 행을 보낼 수 없습니다. 몇 가지 대안이 있습니다.

  • 쿼리 데이터와 모든 행/tmp 디렉토리에서 람다 내부 디렉토리 (5백12메가바이트까지)와 JSON 파일을 빌드, S3에 업로드하고 데이터를 액세스 할 수 CloudFront Signed URL을 반환합니다.
  • 데이터 세트를 여러 페이지로 분할하고 여러 개의 쿼리를 수행하십시오.
  • 람다 대신 EC2 인스턴스 또는 ECS를 사용하십시오.

참고 : 쿼리 한 데이터의 목적에 따라 & 크기 등 다른 메커니즘을 사용하여 다른 AWS 서비스를 효율적으로 사용할 수 있습니다.

+0

친애하는 세 번째 사항을 자세히 설명해 주시겠습니까? 노드 js에 API를 작성하고 EC2 인스턴스에 게시하는 것을 의미합니까? –

+0

예. EC2 인스턴스에서 NodeJS (ExpressJS 또는 기타 적절한 프레임 워크 사용)를 사용하거나 Docker 컨테이너를 사용하여 컨테이너 클러스터에서 서비스를 호스팅하십시오. – Ashan

+0

제안에 대해 @Ashan에게 감사드립니다. 지금 작업 중입니다 ... 건배 –

1

최대 6MB 응답 크기의 하드 제한을 초과하는 것으로 보입니다. 어려운 한계이므로 불행히도이를 늘릴 방법이 없습니다.

최대 6MB를 전송할 수 있도록 람다를 설정하고 64K를 모두 가져올 때까지 다른 호출에서 검색해야하는 행을 페이지 매김해야합니다.

출처 : https://docs.aws.amazon.com/lambda/latest/dg/limits.html#limits-list https://forums.aws.amazon.com/thread.jspa?threadID=230229