简体   繁体   English

如何从 JAVA 调用 AWS lambda 函数?

[英]How to call AWS lambda function from JAVA?

I have multiple lambda functions (get, post ...) and I want to return a JSON or JSON String.我有多个 lambda 函数(get、post ...),我想返回一个 JSON 或 JSON 字符串。 How can I call "get" ("Get" lambda returns list of objects) function from JAVA code, which doesn't require any parameters/payload?如何从不需要任何参数/有效负载的 JAVA 代码调用“get”(“Get”lambda 返回对象列表)函数? Also It returns:它也返回:

{StatusCode: 200,Payload: Sensitive Data Redacted ,ExecutedVersion: $LATEST} {StatusCode: 200,Payload: Sensitive Data Redacted ,ExecutedVersion: $LATEST}

Lambdas have required permissions: Lambda 具有所需的权限:

  • lambda:InvokeFunction拉姆达:调用函数
  • lambda:InvokeAsync拉姆达:调用异步

Method:方法:

public String invokeLambda(String operationName, JSONObject jsonObject) throws JSONException {
    AWSLambda lambdaClient = AWSLambdaClientBuilder.defaultClient();
    InvokeRequest request = new InvokeRequest();
    request.withInvocationType(InvocationType.RequestResponse);
    request.withFunctionName(operationName)
            .withPayload(payload);
    InvokeResult invoke = lambdaClient.invoke(request);
    return invoke.toString();
}

If you are working with AWS SDK 2.0 you can call a lambda function like this如果您使用的是AWS SDK 2.0您可以像这样调用 lambda 函数

    public static void invokeFunction(LambdaClient awsLambda, String functionName) {

         InvokeResponse res = null ;
        try {
            //Need a SdkBytes instance for the payload
            String json = "{\"Hello \":\"Paris\"}";
            SdkBytes payload = SdkBytes.fromUtf8String(json) ;

            //Setup an InvokeRequest
            InvokeRequest request = InvokeRequest.builder()
                    .functionName(functionName)
                    .payload(payload)
                    .build();

            res = awsLambda.invoke(request);
            String value = res.payload().asUtf8String() ;
            System.out.println(value);

        } catch(LambdaException e) {
            System.err.println(e.getMessage());
            System.exit(1);
        }
    }

See here这里

You can then parse the json string into an object, by using a class like ObjectMapper or similar.然后,您可以使用ObjectMapper或类似的类将 json 字符串解析为对象。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 AWS Lambda:如何从简单的java类调用lambda函数 - AWS Lambda : How to call lambda function from simple java class 当两个函数位于同一账户、同一区域时,如何从另一个 AWS Java Lambda 函数调用 aws java lambda 函数 - How to call an aws java lambda function from another AWS Java Lambda function when both are in same account, same region 如何在 ZD52387880E1EA223817A 中的另一个 aws lambda 调用 aws lambda function - How to invoke an aws lambda function from another aws lambda in Java? 如何从Java代码调用AWS lambda函数/处理程序 - How to invoke the AWS lambda function / handler from Java code 如何同时调用相同的AWS Lambda function? - How to call same AWS Lambda function concurrently? 尝试从 aws lambda 处理程序函数调用 SDN 时出现 java.lang.NullPointerException - java.lang.NullPointerException when trying to call SDN from aws lambda handler function AWS Lambda:如何使用java从Lambda函数访问S3存储桶 - AWS Lambda : How to access S3 bucket from Lambda function using java Aws Lambda:如何在 Java 中实现的 lambda 函数中从 Api 网关获取查询参数 - Aws Lambda: How to get query params from Api Gateway in lambda function implemented in Java 如何在 AWS Lambda function 上调用 ssl 端点 - How to call ssl endpoint fon AWS Lambda function 如何从 aws lambda 触发 AWS 步骤函数 - How to trigger AWS step function from aws lambda
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM