我在用Java编写的AWS Lambda上有一个函数,该函数当前只能接受 text 事件数据,而不能接受 JSON 。
每当我进入测试控制台时,如果我的测试事件的有效负载为"{}"
,函数就会运行,但是如果它是json,{}
则不会。
如果我使用任何触发器(例如S3,CloudWatch Events或API网关)运行它,它们总是会发送一个json。
是否有可能运行这些触发器并使它们发送字符串有效载荷而不是json有效载荷?
答案 0 :(得分:0)
要接受JSON
作为输入,您需要更新RequestHandler<JSONObject, String>
和
public class Hello implements RequestHandler<JSONObject, String>{
public String myHandler(JSONObject jsonObj, Context context) {
// add your processing logic.
return "done!";
}
}
或者,您可以使用JSON有效负载的属性定义POJO,例如
class Payload {
//fields
//setter & getter
}
并在您的RequestHandler中将此有效负载类型用作
public class Hello implements RequestHandler<Payload, String>{
public String myHandler(Payload payload, Context context) {
// add your processing logic.
return "done!";
}
}
此处String
是您的输出数据类型。如果您的情况不同,则也需要更改它。