如何使用本机同步函数从 Amazon Aurora MySQL 数据库集群调用 Lambda 函数
How to invoke a Lambda Function from an Amazon Aurora MySQL DB Cluster using native synchronous function
我创建了一个 Lambda 函数,它将用户名和电子邮件以及 post 那些带到 API。然后,我创建了一个 Aurora MySQL 数据库实例,它将调用该 Lambda 函数。为了调用它,我创建了一个触发器:
Time: AFTER
Event: Insert
Definition: BEGIN
CALL mysql.lambda_async("arn:aws:lambda:eu-west-2:<id-number>:function:user-to-API", CONCAT ('{"user_first_name": "', NEW.first_name, '", "user_email": "', NEW.email, '"}'));
END
Definer: master_user@%
但是,我想同步执行此操作,只触发一次 lambda 函数。这是可能的with an Aurora MySQL Native Function。但是,我尝试不使用 mysql 部分 - 使用 lambda_sync
并且总是收到相同的错误:MYSQL PROCEDURE mysql.lambda_sync does not exist
或 MYSQL PROCEDURE lambda_sync does not exist
。有人有这方面的经验吗?
提前感谢您的支持。
使用 SELECT
或 DO
调用本机函数 -- CALL
用于存储过程。
对于在 2018 年 11 月 19 日面临相同问题的每个人,根据 AWS,在 Aurora MySQL 5.7 中创建的数据库集群不支持 mysql.lambda_sync 过程(Aurora MySQL 2.* 版本)。在 Aurora MySQL 2.* 版本中,不支持使用本机函数技术以及 'sync' lambda 过程。他们修改了文档,但仍然令人困惑。然而,在一天结束时,我不得不调用 mysql.lambda_async
。
我创建了一个 Lambda 函数,它将用户名和电子邮件以及 post 那些带到 API。然后,我创建了一个 Aurora MySQL 数据库实例,它将调用该 Lambda 函数。为了调用它,我创建了一个触发器:
Time: AFTER
Event: Insert
Definition: BEGIN
CALL mysql.lambda_async("arn:aws:lambda:eu-west-2:<id-number>:function:user-to-API", CONCAT ('{"user_first_name": "', NEW.first_name, '", "user_email": "', NEW.email, '"}'));
END
Definer: master_user@%
但是,我想同步执行此操作,只触发一次 lambda 函数。这是可能的with an Aurora MySQL Native Function。但是,我尝试不使用 mysql 部分 - 使用 lambda_sync
并且总是收到相同的错误:MYSQL PROCEDURE mysql.lambda_sync does not exist
或 MYSQL PROCEDURE lambda_sync does not exist
。有人有这方面的经验吗?
提前感谢您的支持。
使用 SELECT
或 DO
调用本机函数 -- CALL
用于存储过程。
对于在 2018 年 11 月 19 日面临相同问题的每个人,根据 AWS,在 Aurora MySQL 5.7 中创建的数据库集群不支持 mysql.lambda_sync 过程(Aurora MySQL 2.* 版本)。在 Aurora MySQL 2.* 版本中,不支持使用本机函数技术以及 'sync' lambda 过程。他们修改了文档,但仍然令人困惑。然而,在一天结束时,我不得不调用 mysql.lambda_async
。