람다 비동기 호출

비동기 함수를 호출 할 때, 람다는 큐에 이벤트를 보냅니다. 별도의 프로세스는 큐에서 이벤트를 읽고 함수를 실행합니다. 대기열에 이벤트를 추가 한 후, 람다는 성공 응답을 반환하기보다는 다른 정보로 돌아갑니다. 비동기 함수를 호출 입력 매개 변수 세트를 문의하십시오  Event.

출력 파일은 ( response.json) 정보를 포함하지 않지만,이 명령을 실행할 때 여전히이 파일을 만듭니다. 수없는 람다가 큐에 이벤트를 추가 할 경우, 오류 메시지가 명령 출력에 표시됩니다.

람다 비동기 호출 큐 관리 기능, 그리고 시도는 자동으로 실패 이벤트를 다시 시도합니다. 함수가 오류를 반환하는 경우, 람다는 두 번 다시 실행 이전의 두 시도 사이 잠깐, 두 번째와 세 번째 시간 사이 2 분 정도 기다려야 할 것입니다. 오류 코드를 포함하는 오류 함수는 함수에 의해 반환하고, 오류 기능은 제한 시간으로, 실행 반환합니다. 세 가지 시도가 실패하면, 람다 이벤트가 전송됩니다 데드 - 레터 큐 (구성된 경우).


      람다 서브 세그먼트들 각각의 시도를 기록한다.

이 모든 이벤트의 동시 처리를위한 충분한이없는 경우, 다른 요청은 제한됩니다. 한계 오류 (429) 및 시스템 오류 (500 시리즈)의 경우, 람다 이벤트는 큐에 돌아가 6 시간에 다시 기능을 실행하려고합니다. 최대 5 분 첫 시도 후 일초에서 기하 급수적으로 증가 간격을 시도하지만, 큐가 백업되는 경우, 더 길 수있다. 람다는 큐 레이트로부터 판독 한 이벤트를 감소시키고, 상기 이벤트 큐 복귀 판독 될 수 없다. 이벤트가 가장 긴 대기열에 위치 할 수있는 것은 사일입니다.


      요청 제한은 AWS X 선에 보류중인 것으로 도시된다.

함수가 오류를 반환하지 않는 경우에도 큐 자체가 최종 일관성을 가지고 있기 때문에, 람다에서 여러 번 같은 이벤트를 수신 할 수있다. 함수가 수신 이벤트로 유지할 수없는 경우,이 함수에 보내지 않고 큐에서 이벤트를 제거 할 수있다. 코드가 올바르게 이벤트 기능을 반복 처리 작동하는지 확인하십시오, 당신은 충분히 동시 처리가 모든 통화에 사용할 수 있습니다.

AWS 람다 데드 레터 큐 기능

세 가지 시도가 비동기 호출이 실패 취급 할 경우, 람다는 아마존 SQS 큐 또는 아마존 SNS 주제로 이벤트를 보낼 수 있습니다. 추가 처리를 위해 이러한 이벤트를 저장하는 죽은 편지 대기열 구성 기능을 사용하십시오.

당신이 대기열 또는 주제하지 않는 경우, 대기열 또는 주제를 만드십시오. 사용 사례 일치의 대상 유형을 선택합니다.

대기열 또는 주제에 전송 이벤트를 추가하려면 기능 추가 권한이 필요합니다. 기능을 추가하는 것은이 의 역할을 수행 할 권한 필요한 정책을.

역할 업데이트 기능을 목표를 만들고 수행 한 후 죽은 편지 큐 기능에 추가됩니다. 당신은 동일한 대상에 이벤트를 보낼 여러 기능을 구성 할 수 있습니다.

죽은 편지 대기열 구성

  1. 열기 람다 콘솔  기능 페이지 .

  2. 기능을 선택합니다.

  3. 에는  디버깅 및 오류 처리 (디버깅 및 오류 처리)  언더  DLQ 리소스 에  아마존 SQS  또는  아마존 SNS .

  4. 대상 대기열 또는 주제를 선택합니다.

  5. 선택  저장을 .

AWS CLI에 의해 죽은 편지 큐를 구성하려면 사용하는  update-function-configuration 명령을.

 
$ aws lambda update-function-configuration --function-name my-function \ --dead-letter-config TargetArn=arn:aws:sns:us-east-2:123456789012:my-topic

람다 AS는 데드 큐로 이벤트 및 속성에 포함 된 다른 정보를 전송한다. 당신은 함수가 오류를 반환 식별하기 위해이 정보를 사용하거나 이벤트 로그 또는 AWS X 레이 추적이 연결되어 있습니다.

DLQ의 메시지 속성

  • RequestID가 (문자열) - ID 호출 요청. 요청 ID는 로그 함수로 표시된다. 또한 속성 요청 ID의 실적에 X 레이 개발 키트를 사용할 수 있습니다, 그리고 당신은 X 레이 콘솔에서 검색 요청 ID를 누를 수 있습니다. 예를 들어, 참조 에러 처리기 예 .

  • ErrorCode가 (디지털) - HTTP 상태 코드입니다.

  • ErrorMessage가 (문자열) - 오류 메시지의 텍스트의 1 1킬로바이트 블록.


      배달 못한 편지 큐 이벤트는 아마존 SQS 콘솔 때문이다.

람다가 죽은 문자 메시지 큐에 송신 할 수없는 경우, 이벤트는 제거하고 전송  DeadLetterErrors의  지표. 권한의 부족, 또는 전체 메시지 크기에 제한 대상 대기열 또는 주제를 초과 인해이 문제가 발생하는 이유는, 그것은있을 수 있습니다. 예를 들어, 에러 함수를 발생 2백56킬로바이트 아마존 SNS 통지 트리거에 가까운 본체 경우, 아마존 SNS 람다 초래할 수 속성을 첨가하여 추가 이벤트 데이터를 결합 DLQ 메시지가 허용되는 최대 크기를 초과하는 추가.

당신은 아마존 SQS 큐 DLQ 자체가 아니라 설정 기능 람다에, 이벤트 소스로 아마존 SQS를 사용하는 경우.

추천

출처www.cnblogs.com/cloudrivers/p/11619292.html