2017-11-25 5 views
0

웹 서비스를 통해 일부 외부 자동화에 연결되는 람다 함수가 있습니다. 작업 완료까지 약 45 초가 걸립니다.Amazon Lex Lambda Fullfilment에서 30 초 만에 시간 초과

람다 호출에 대한 시간 제한을 이미 2 분으로 업데이트했으며 테스트 할 때 정상적으로 작동합니다.

오류가 발생했습니다 : 잘못된 봇 구성 : 나는 아마존 렉스의 텍스트 봇을 사용하고 때

그러나, 나는 다음과 같은 메시지가 람다 요청은 허용 시간 (30초) 내에 완료되지 않았습니다.

누구나 람보르기침 구성을 늘려 적어도 1 분 동안 람다 스크립트를 제공하는 방법을 알고 있습니까? 이 AWS 렉스가 던질 것이라고 정의되어

감사

순간이 제한에서

답변

1

은 수정할 수 없습니다 수 424 - DependencyFailedException 경우 : 같은 AWS 람다 또는 종속성의

하나 Amazon Polly는 예외를 던졌습니다. 예 :

  • Amazon Lex에 람다 기능을 호출 할 충분한 권한이없는 경우.
  • 람다 함수가 실행하는 데 30 초 이상 걸릴 경우.
  • 성취 람다 함수가 슬롯 값을 제거하지 않고 대리자 대화 상자 동작을 반환하는 경우.

출처 : AWS Lex docs.

0

당신이 여기에 달성하려는 것에 더 정교한 수 있습니까? 철학적으로 로봇은 반응이 있어야하고 Lex는 람다 콜에 그러한 시간 제한을 이해할 수있게 넣어야합니다. 최종 사용자가 업데이트를 위해 봇을 검사하는 방식으로 봇을 모델링하는 것이 좋습니다 (이는 응답에 대해 네드 사용자가 폴링하는 것과 같습니다). 람다에서는 요청 처리가 비동기 적으로 발생해야합니다. 람다는 다음 요청을 받으면 예를 들어 :

  • 당신이 요청에 대한 UUID를 생성하고 비동기 요청을 처리 할 수 ​​있습니다 (A SQS에 요청을 넣어하는 또 다른 람다 추천 및 공정 r에 그 같은).
  • 최종 사용자에게 UUID를 반환합니다. "요청 ID입니다.이 작업의 상태를 몇 초간 확인하십시오.".
  • 최종 사용자는 "whats the status"라는 요청의 결과를 계속 확인합니다. 그런 발언에 대해 당신은 반응을 확인하기 위해 람다를 방아쇠를 당길 또 다른 의도를 가질 수 있습니다. 그 동안 1 단계에서 수행되는 처리의 응답을 S3에 게시하거나 데이터베이스에 넣을 수 있습니다 (해당 데이터의 식별자로 UUID 사용). 이 현재 람다는 S3 또는 데이터베이스를 조사하여 결과를 얻고이를 반환 할 수 있습니다.