如何使用本机同步函数从 Amazon Aurora MySQL 数据库集群调用 Lambda 函数

How to invoke a Lambda Function from an Amazon Aurora MySQL DB Cluster using native synchronous function

我创建了一个 Lambda 函数,它将获取用户的姓名和电子邮件并将其发布到 API。然后,我创建了一个将调用该 Lambda 函数的 Aurora MySQL 数据库实例。为了调用它,我创建了一个触发器:

1
2
3
4
5
6
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 函数。这可以通过 Aurora MySQL 原生函数实现。但是,我尝试不使用 mysql 部分 - 使用 lambda_sync 并且总是收到相同的错误:MYSQL PROCEDURE mysql.lambda_sync does not exist OR MYSQL PROCEDURE lambda_sync does not exist。有人有这方面的经验吗?

提前感谢您的支持。


使用 SELECTDO 调用本机函数 -- CALL 用于存储过程。


对于在 2018 年 11 月 19 日面临同样问题的所有人,根据 AWS 的说法,在 Aurora MySQL 5.7(Aurora MySQL 2.* 版本)中创建的数据库集群不支持 mysql.lambda_sync 过程。在 Aurora MySQL 2.* 版本中,不支持使用本机函数技术以及"同步"lambda 过程。他们已经修改了文档,但仍然令人困惑。然而,在一天结束的时候,我不得不使用对 mysql.lambda_async 的调用。