2017-11-17 30 views
0

私は2つのAWSラムダjava 8関数 "lambda A"と "lambda B"を持っています。 「ラムダA」関数は「ラムダB」関数を呼び出し、「ラムダB」の結果を得るまで待機する。しかし、私は "ラムダB"を呼び出し、すぐに "ラムダA"関数を返したいと思います。実装することが可能か、それに関連する参照リンクがありますか?別のlamda関数からAWS lamda関数を呼び出して、呼び出されたラムダ結果をwaitngなしで返す方法

答えて

2

AWSラムダSDK for Javaでは、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); return ...; '? これはあなたの関数を呼び出すだけで、呼び出されたという応答を得て、あなたが望むものを返すことができます。 [ここ](http://docs.aws.amazon.com/lambda/latest/dg/API_Invoke.html)も参照してください。 –

関連する問題