我在AWS lambda中创建了一个函数,该函数使用LambdaCall调用第二个lambda函数。
public InvokeResult invokeResponse() {
InvokeResult invokeResult = lambdaCall.invokeLambda(invokeRequestParameters.getFunctionName(), invokeRequestParameters.getPayload());
return invokeResult;
}
有效载荷是字符串"0";版本";。在第二个lambda中,handleRequest代码包含:
public String handleRequest(InputStream inputStream, Context context) {
ObjectMapper mapper = new ObjectMapper();
try {
String text = new BufferedReader(new InputStreamReader(inputStream, StandardCharsets.UTF_8)).lines().collect(Collectors.joining("n"));
if (text.equals(""Version"")) {
VersionResponse versionResponse = getVersion();
return mapper.writeValueAsString(versionResponse);
}
return null;
} catch (Exception error) {
LOGGER.info(error);
return null;
}
VersionResponse是一个简单的POJO,我已经确认getVersion正在返回VersionResponse对象。目前Lambda正在检索";版本字符串";并且getVersion运行良好。但是,当返回字符串时,InvokeResult的有效负载为null。知道我做错了什么吗?
我(在NodeJS中(遇到了这种情况,因为在使用异步函数的lambda中,我忘记添加return resultValue
来返回正确的值,所以lambda没有一个好的返回值,而是使用null
作为返回值。我认为,如果在使用回调参数的lambda中忘记调用callback(null, result)
,也可能发生这种情况