使用字符串有效负载触发AWS Lambda函数

时间:2018-11-11 03:50:39

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

我在用Java编写的AWS Lambda上有一个函数,该函数当前只能接受 text 事件数据,而不能接受 JSON

每当我进入测试控制台时,如果我的测试事件的有效负载为"{}",函数就会运行,但是如果它是json,{}则不会。

如果我使用任何触发器(例如S3,CloudWatch Events或API网关)运行它,它们总是会发送一个json。

是否有可能运行这些触发器并使它们发送字符串有效载荷而不是json有效载荷?

1 个答案:

答案 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是您的输出数据类型。如果您的情况不同,则也需要更改它。