2016-09-21 2 views
2

람다 함수를 Java로 작성했습니다 (실제로 Clojure로 작성되었습니다). 실행될 때마다 3 번 호출됩니다.AWS 람다 Java 함수가 여러 번 호출되었습니다.

내 기능이 성공적으로 실행되고 시간 초과 (최대 5 분으로 설정) 내에 잘 수행됩니다. 그것은 콘솔에서 함수를 테스트 할 때 출력을 볼 수있는 문자열을 반환합니다.

일부 컨텍스트 성공/완료 함수를 호출해야하는 것에 관한 온라인 내용을 보았지만 Java SDK (노드 전용 인 것 같습니다)에서 볼 수 없습니다.

내가 누락 된 항목이 있습니까?

콘솔에서 테스트를 클릭하면 발생하지 않지만 한 번만 실행되지만 CloudWatch 트리거를 통해 트리거되거나 AWS SDK를 통해 실행될 때 발생합니다.

감사합니다,

도노반

업데이트 : 단지 SDK 및 CLI를 통해 트리거를 통해 실행할 때 사과는,이 발생하지 않기 때문에 아마도 내가 만드는 중이라서 전화에 약간의 제한이 있습니다.

답변

5

나중에 다른 사람을 참조 할 때 SDK 및 CLI에서 읽기 제한 시간이 1 분이되고 요청을 다시 시도하는 것이 문제였습니다. 내 AWS 람다 시간 제한에 맞게 수동으로 5 분으로 설정했습니다.

을 추가하면 CLI에서이 작업을 수행 할 수 있습니다. 여기서 int은 원하는 시간 초과입니다 (또는 간단히 --cli-read-timeout 0은 시간 초과를 모두 비활성화합니다). 자격 증명 매핑에 자바 SDK 그것에서

가 아마 조를 사용하여 Clojure의에서 ClientConfiguration 객체

setSocketTimeout(int socketTimeout)를 호출하여 수행 할 수 있습니다, :client-config {:socket-timeout xxx}을 추가합니다.

+0

나는 이것을 invokeRequest.setSdkRequestTimeout (180001);로 해결했다. \t \t invokeRequest.setSdkClientExecutionTimeout (180001); –

관련 문제