如何向AWS SNS发送通知,以便将记录插入到Mysql Rds表中?

时间:2018-03-26 10:18:21

标签: amazon-web-services amazon-sns rds

我需要根据数据插入到Mysql RDs表中发送SNS通知吗?

3 个答案:

答案 0 :(得分:2)

“自动”触发通常由AWS Lambda或CloudWatch警报实现。 Lambda事件源描述为here,但RDS不在其中。

我建议将数据插入RDS的逻辑应该发送SNS消息

答案 1 :(得分:1)

mysql / rds中没有任何内置功能可以为您完成此操作。如果这是一个要求,我会建议一个自定义层接收插入请求并执行插入并发送通知。

对执行这两项任务的lambda函数的API网关请求可能会起作用,但我不建议将其用于高速输入(对数据库的写入速度会变慢)。

对于低音量的情况,它可能正常。

答案 2 :(得分:1)

您可以使用RDS触发器,存储过程来实现。

请按照以下步骤

  1. 创建如下所示的存储过程,该存储过程指向可以发送SNS的AWS Lambda函数。

DELIMITER $$ CREATE DEFINER = admin @ %程序procedure name(在'列名''列数据类型'中)BEGIN CALL > mysql.lambda_async('lambda ARN', > CONCAT('{“ val”:“',val,'”}'))); END $$ DELIMITER;

  1. 创建一个触发器,该触发器根据所需的场景触发上述过程。 在下面的示例中,当指定的列值等于或大于10时将触发存储过程。

    DELIMITER $$ CREATE DEFINER = admin @ %之后触发“触发名称” 在IF(NEW。'列名',' ','')> = 10 THEN CALL'程序名称'(NEW。'列名称');万一; END $$ DELIMITER;

确保您具有创建触发器和过程的足够权限。如果没有,请授予必要的访问权限并尝试。