在我的Java Lambda函数中,我的目标是在满足某些条件的情况下删除传入的电子邮件。如果不是,则电子邮件将继续处理下一个规则操作。
我只有1个规则集,有2个动作:第一个动作是带有RequestResponse调用类型的Lambda,下一个是WorkMail。
这是节点的well documented。因此,很简单,我的目标是在Java中复制它:
callback(null, {'disposition':'STOP_RULE_SET'});
但是,我下面的Lambda代码无法实现此目的。我无法弄清楚如何使用哪种类型的处理程序,以及如何返回“处置” JSON
public class PLSesLambda implements RequestHandler<Object, String>
{
static LambdaLogger logger;
Gson gson = new GsonBuilder().setPrettyPrinting().create();
@Override
public String handleRequest(Object event, Context context)
{
logger = context.getLogger();
LinkedHashMap<String, String> lhm = (LinkedHashMap<String, String>) event;
logger.log("Incoming email: " + gson.toJson(lhm));
JsonParser parser = new JsonParser();
JsonObject jsonObj = (JsonObject) parser.parse("{'disposition':'STOP_RULE_SET'}");
return jsonObj.toString(); // does not have effect of stopping rule set
}
}
此问题在here之前被问过一次。但是我的handleRequest()返回类型与Collections.singletonMap()的返回类型不匹配(简单地更改它会破坏其他内容)
谢谢