【问题标题】:Is it possible to invoke or trigger an AWS lambda through remote MYSQL database?是否可以通过远程 MYSQL 数据库调用或触发 AWS lambda?
【发布时间】:2020-03-18 13:00:39
【问题描述】:

在远程 MYSQL 数据库表(托管在本地机器)中插入数据时,它也应该通过 lambda 插入到 RDS MYSQL 数据库表中:

我的要求:

  1. 我的 PC 中有一个本地数据库。
  2. 我通过 Dbeaver 使用远程访问连接到它来访问它。
  3. 现在我在 AWS 中创建了一个 RDS MYSQL 数据库(与我的本地数据库具有相同的架构)。
  4. 我有 lambda 作为连接这两个数据库的桥梁。

    我尝试了什么:

    • 我尝试了将 RDS 连接到 RDS 的常用方法。
    • 我在其中创建了一个触发器,然后在我的本地数据库中创建了一个带有 LAMBDA_ARN 的存储过程,以便在本地表中插入数据后调用 lambda。
    • lambda 将在 RDS MYSQL 表中插入相同的数据。

例如,我尝试的是:

我的本​​地数据库中有一个表,例如 this:

我已经在 RDS MYSQL 中创建了一个具有相同架构的数据库。

我在本地数据库中添加了一个触发器,如下所示:

 CREATE TRIGGER local_to_rds AFTER INSERT ON mark2 FOR EACH ROW
BEGIN
  SELECT  NEW.sno, QUOTE(NEW.name), IFNULL(NEW.geoloc,0), NEW.ranging INTO @sno, @name, @geoloc, @ranging;
  CALL  local_to_rds_Procedure(@sno, @name, @geoloc, @ranging);
end

我的本地数据库中的过程如下:

CREATE PROCEDURE local_to_rds_procedure (IN sno int, IN name varchar(50), IN geoloc int, IN ranging int) LANGUAGE sql begin
CALL mysql.lambda_async('arn:aws:lambda:us-west-2:919585521528:function:local_to_rds',
CONCAT('{ "sno" : "', sno,
'", "name" : "', name,
'", "geoloc" : "', geoloc,
'", "ranging" : "', ranging,'"}'));
END

现在我已经创建了一个 lambda 用于将此本地数据库连接到 RDS 数据库,也用于其他一些目的,例如在我收到任何错误时通知我,在每次插入(或)更新(或)删除时自动创建日志表我的桌子等等……我没有任何问题。

我在这里遇到的问题是连接问题,在创建触发器和调用 lambda 的过程后,我得到 SQL Error [1305] [42000]: PROCEDURE my.sql.lambda_async does not exist

我尝试浏览解决方案,但找不到合适的解决方案。

这是我正在尝试的过程的视图:

LOCAL_DATABASE --> LAMBDA --> AWS_RDS

我被卡住的部分是在本地数据库表中插入数据时调用 lambda...而且我不知道如果我通过这个会遇到什么样的错误。

提前谢谢...

【问题讨论】:

    标签: mysql aws-lambda amazon-rds


    【解决方案1】:

    您在哪里看到lambda_async 应该在您的本地 MySQL 服务器中可用?我只在 MySQL 版本的 AWS Aurora 中看到了该功能。

    对于您想要做的事情,您需要通过 API Gateway 向世界公开 Lambda 函数,然后从您的 MySQL 过程将make an HTTPS call 暴露给该 API Gateway 端点。

    【讨论】:

    • 是否可以在windows中为MYSQL创建UDF!?所以我可以通过过程调用API...
    • @NaveenB 快速搜索使其成为可能:rpbouman.blogspot.com/2007/09/…
    猜你喜欢
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-08
    • 1970-01-01
    • 1970-01-01
    • 2013-03-19
    相关资源
    最近更新 更多