【问题标题】:How to invoke AWS lambda function from another lambda function and return without waitng for the called lambda result如何从另一个 lambda 函数调用 AWS lambda 函数并返回而不等待调用的 lambda 结果
【发布时间】: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


    【解决方案1】:

    使用适用于 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);
    

    也请考虑阅读thisthis 问题。

    【讨论】:

    • 感谢您的澄清。如果我在调用行旁边写下“返回”,您能否也澄清一下。会不会成功调用 lambda B 函数,并且不等待调用结果也立即返回执行。
    • 我假设您的意思是这样的:InvokeResult result = lambdaClient.invoke(request); return ...; ?这只会调用你的函数,你会得到它被调用的响应,你可以返回任何你想要的。另见here
    猜你喜欢
    • 2017-01-01
    • 2021-09-23
    • 2018-06-09
    • 1970-01-01
    • 2018-05-19
    • 2018-08-21
    • 1970-01-01
    相关资源
    最近更新 更多