【发布时间】:2018-10-03 22:19:21
【问题描述】:
我有两个 AWS lambda java 8 函数“lambda A”和“lambda B”。 “lambda A”函数调用“lambda B”函数并等待它得到“lambda B”的结果。但我想调用“lambda B”并立即返回“lambda A”函数。是否可以实现以及任何与之相关的参考链接。
【问题讨论】:
标签: aws-lambda
我有两个 AWS lambda java 8 函数“lambda A”和“lambda B”。 “lambda A”函数调用“lambda B”函数并等待它得到“lambda B”的结果。但我想调用“lambda B”并立即返回“lambda A”函数。是否可以实现以及任何与之相关的参考链接。
【问题讨论】:
标签: aws-lambda
使用适用于 Java 的 AWS Lambda 开发工具包,您可以设置 InvocationType within the InvokeRequest 对象。这只会调用您的函数,但不会等待响应。
来自 Javadocs:
默认情况下,Invoke API 采用 RequestResponse 调用类型。您可以选择通过将 Event 指定为 InvocationType 来请求异步执行。
例子:
AWSLambda lambdaClient = AWSLambdaClientBuilder.defaultClient();
InvokeRequest request = new InvokeRequest();
request.withFunctionName(name)
.withInvocationType(InvocationType.Event)
.withPayload(payload);
InvokeResult result = lambdaClient.invoke(request);
【讨论】:
InvokeResult result = lambdaClient.invoke(request); return ...; ?这只会调用你的函数,你会得到它被调用的响应,你可以返回任何你想要的。另见here