2017-05-24 8 views
0

내가 함께, boto3와 람다 함수를 호출하고있어 존중하지 않습니다 : 그것은 6백26초 후 botocore.vendored.requests.exceptions.ReadTimeout 예외를 발생 것호출 람다 시간 제한

import boto3 
import json 

client = boto3.client('lambda') 
response = client.invoke(
      InvocationType='RequestResponse', 
      FunctionName=test_lambda_arn, 
      LogType='Tail', 
      Payload=json.dumps(data) 
) 

. 이 람다가 100 초 후에 시간 초과되도록 구성했습니다. 나는 boto로 그것을 만들었을 때 그렇게했다. AWS 콘솔에 들어가면이 람다의 시간 제한은 1 분 40 초입니다.

그렇다면 invoke 명령이 626 초 후 및 100 초 후가 아닌 시간 초과가 발생합니까?

재시도 때문입니까? 그렇다면 재 시도를 어떻게 비활성화 할 수 있습니까?

편집 : CloudWatch 로그에서 각 client.invoke 호출에 대한 여러 호출을 볼 수 있습니다. 따라서 자동 재 시도가 발생합니다. client.invoke의 경우 the docs입니다.

+0

실제로 람다 함수가 호출 되었습니까? CloudWatch에서 호출이 발생하는 것을 보시겠습니까? 코드가 AWS API를 호출 할 때 시간 초과 될 수있는 것 같습니다. –

+0

예 로그에서 호출을 볼 수 있습니다. 하나의 'client.invoke'에 대해 여러 개의 로그 항목이 있으므로 재시도가 발생합니다. – falsePockets

답변

0

이 문제는 boto3 git repo에 게시되었습니다. 자동 재 시도를 사용하지 않으려면 client.invoke에 옵션을 추가 할 것입니다.

한편, here's a workaround.