2017-11-17 2 views
0

두 개의 AWS lambda java 8 함수 "lambda A"와 "lambda B"가 있습니다. "lambda A"함수는 "lambda B"함수를 호출하고 "lambda B"의 결과를 얻을 때까지 기다립니다. 하지만 "lambda B"를 호출하고 "lambda A"함수를 즉시 반환하려고합니다. 그것과 관련된 모든 참조 링크를 구현할 수 있습니까?다른 lamda 함수에서 AWS lamda 함수를 호출하고 호출 된 lambda 결과를 waitng없이 return하는 방법

답변

2

Java 용 AWS Lambda SDK를 사용하면 InvocationType within the InvokeRequest 개체를 설정할 수 있습니다. 이렇게하면 함수가 호출되지만 응답을 기다리지는 않습니다. javadoc의에서

: 기본적으로

는 호출 API는 RequestResponse 호출 유형을 가정합니다. InvocationType으로 Event를 지정하여 선택적으로 비동기 실행을 요청할 수 있습니다.

예 :

AWSLambda lambdaClient = AWSLambdaClientBuilder.defaultClient(); 
InvokeRequest request = new InvokeRequest(); 
request.withFunctionName(name) 
     .withInvocationType(InvocationType.Event) 
     .withPayload(payload); 
InvokeResult result = lambdaClient.invoke(request); 

또한 thisthis 질문을 읽는 고려하시기 바랍니다.

+0

설명해 주셔서 감사합니다. 호출 줄 옆에 "return"을 쓰면 나를 명확히 해 주실 수 있습니까? 그것은 람다 B 함수를 성공적으로 호출 할 것이고 호출 결과를 기다리지 않고 즉시 리턴 될 것입니다. –

+1

다음과 같은 내용을 가정합니다 : 'InvokeResult result = lambdaClient.invoke (request); 돌아왔다 ...; '? 이것은 단지 함수를 호출 할 것이고, 호출 된 응답을 얻고 원하는 것을 반환 할 수 있습니다. [여기] (http://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html)도 참조하십시오. –