[英]How to call AWS lambda function from JAVA?
我有多個 lambda 函數(get、post ...),我想返回一個 JSON 或 JSON 字符串。 如何從不需要任何參數/有效負載的 JAVA 代碼調用“get”(“Get”lambda 返回對象列表)函數? 它也返回:
{StatusCode: 200,Payload: Sensitive Data Redacted ,ExecutedVersion: $LATEST}
Lambda 具有所需的權限:
- 拉姆達:調用函數
- 拉姆達:調用異步
方法:
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();
}
如果您使用的是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);
}
}
看這里
然后,您可以使用ObjectMapper
或類似的類將 json 字符串解析為對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.