java - 如何从 Java 代码调用 AWS lambda 函数/处理程序

标签 java aws-lambda aws-sdk

我是 AWS lambda 新手,我已经创建了一个带有处理程序的 lambda 函数

example.Orders::orderHandler

这是自定义处理程序,现在我想从我的 Java 程序中调用它,我需要如何调用它。

最佳答案

这个类中的两个方法应该能够帮助你。一个是如果您需要传入有效负载,另一个是如果有效负载为空。

但是,您需要记住一件事:函数名称可能与处理程序不同(这里后者是 example.Orders::orderHandler)。调用其函数时使用处理程序名称。

因此,如果您有一个函数名称“myFunction”的函数,该函数在幕后调用您的example.Orders::orderHandler 处理程序,那么这就是您要传递到下面的 run 方法中的内容。

import com.amazonaws.regions.Regions;
import com.amazonaws.services.lambda.AWSLambdaAsyncClient;
import com.amazonaws.services.lambda.model.InvokeRequest;
import com.amazonaws.services.lambda.model.InvokeResult;

class LambdaInvoker {

    public void runWithoutPayload(String region, String functionName) {
        runWithPayload(region, functionName, null);
    }

    public void runWithPayload(String region, String functionName, String payload) {
        AWSLambdaAsyncClient client = new AWSLambdaAsyncClient();
        client.withRegion(Regions.fromName(region));

        InvokeRequest request = new InvokeRequest();
        request.withFunctionName(functionName).withPayload(payload);
        InvokeResult invoke = client.invoke(request);
        System.out.println("Result invoking " + functionName + ": " + invoke);
    }
}

关于java - 如何从 Java 代码调用 AWS lambda 函数/处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41616806/

相关文章:

java - 从帧率代码中得到奇怪的结果

java - 如何将目录中的文件列表从 PHP 传递到 Android/Java

java - 在不改变 %C 的情况下子类化 org.apache.log4j.Logger?

python - 在 Python 中解析多部分请求字符串

go - 如何使用无服务器框架处理手动调用的 AWS lambda

amazon-web-services - .NET Core 2.0添加服务IAmazonS3

java - 如何在 fragment 中启用操作栏选项卡?

node.js - 仅使用插入配置 DynamoDB 流触发器

node.js - 您可以使用 Node.js 8.10 支持的 AWS Lambda 函数向 SNS 主题发布多条消息吗?

amazon-web-services - 使用 CLI 使 S3 存储桶权限公开访问 'Everyone'