我试图触发添加到表在亚马逊极光但是当我运行以下CREATE TRIGGER
命令没有反应:添加触发器调用亚马逊极光LAMBDA功能无法正常工作
delimiter $$
CREATE TRIGGER trigger_lambda_function_on_special_row_update
AFTER UPDATE ON example_table
FOR EACH ROW
BEGIN
IF NEW.special_id = 12345 THEN
CALL mysql.lambda_async("arn:aws:lambda:[region]:[account]:function:myfunction", CONCAT('{"param":"', NEW.id, '"}'));
END IF;
END;$$
delimiter ;
通过“什么也没发生”我的意思是,当我运行CREATE TRIGGER
数据库仍然响应 - 我可以按Ctrl + C中断查询 - 但查询只是坐在那里什么都不做,直到我终于得到响应MySQL has gone away
。
服用mysql.lambda_async
出触发和运行它是好的。我可以看到AWS Lambda上的调用,所以我知道这部分工作正常。
我对Aurora上的触发器做了一些阅读,如果您想使用触发器,我可以看到有些人提到需要在AWS控制台“参数组”中启用log_bin_trust_function_creators
,但这仅适用于mysql5 .5+参数组系列。如果你想调用lambda函数,此选项只有aurora5.6参数家庭组中提供。看起来你不能这样做。
无论其!你必须能够做到这一点;有大量的例子摆在那里,甚至从亚马逊自己,在这似乎是完全有可能的:
http://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Lambda.html(参见:例子:调用AWS lambda函数从触发发布事件)
所以我困惑。其他人是否使这个过程有效?