【问题标题】:How to call AWS lambda function from JAVA?如何从 JAVA 调用 AWS lambda 函数?
【发布时间】:2021-12-17 08:27:29
【问题描述】:

我有多个 lambda 函数(get、post ...),我想返回一个 JSON 或 JSON 字符串。如何从不需要任何参数/有效负载的 JAVA 代码中调用“get”(“Get”lambda 返回对象列表)函数?它也返回:

{StatusCode: 200,Payload: 敏感数据已编辑,ExecutedVersion: $LATEST}

Lambda 具有所需的权限:

  • lambda:InvokeFunction
  • lambda:InvokeAsync

方法:

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();
}

【问题讨论】:

    标签: java amazon-web-services aws-lambda


    【解决方案1】:

    如果您正在使用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);
            }
        }
    

    here

    然后,您可以使用 ObjectMapper 或类似的类将 json 字符串解析为对象。

    【讨论】:

      猜你喜欢
      • 2021-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-23
      • 2017-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多