我试图在我的Eclipse中使用Java来修改aws lambda函数,如果我将输入作为任何字符串传递,函数调用成功,但是我看到null作为输出,但我&#39 ; m将输入文本本身视为输出。
这是我的代码
package simpledynamodb;
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class LambdaFunctionHandler implements RequestHandler<String, String> {
@Override
public String handleRequest(String input, Context context) {
context.getLogger().log("Input is working");
context.getLogger().log("Input: " + input);
// TODO: implement your handler
return null;
}
}
输出看起来像
Uploading function code to dynamodbmaven...
Upload success. Function ARN: arn:aws:lambda:us-west-2:169456523019:function:dynamodbmaven
Invoking function...
==================== FUNCTION OUTPUT ====================
null
在我的代码中我传递了#Hello; Hello world&#34;作为输入文本,我想要看到传递的字符串,而不是我得到空。
我的处理程序类,一切似乎都没问题。这是我的lambda配置的图片
你能告诉我这里我错在哪里吗?
答案 0 :(得分:1)
我在这里很晚,但你没有看到输出的原因是因为你正在查看Eclipse中的输出 - 它只返回函数调用的结果。 您应该查看Lambda的Cloudwatch日志以获取运行日志。
答案 1 :(得分:0)
它正在打印null
,因为这是函数返回的内容。
我假设当你说你应该把输入文本作为输出时,你真正的意思是你应该在日志中的输入字符串中看到。我猜你已经配置了日志记录,以便那些日志不打印。要了解日志记录配置问题只是为了查看输入字符串是什么,您可以尝试使用System.out
代替context.getLogger().log