如何在 Aurora 中启用 lambda_sync/lambda_async 功能
How to enable lambda_sync/lambda_async functions in Aurora
当我尝试向我的用户授予 INVOKE LAMBDA 权限时,它因语法错误而失败:
mysql> GRANT INVOKE LAMBDA ON mydb.* TO 'myuser'@'myaddress';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INVOKE LAMBDA ON mydb.* TO 'myuser'@'myaddress'' at line 1
lambda_sync和lambda_async函数也没有定义:
mysql> select lambda_sync("arn:aws:lambda:ap-southeast-1:xxxxxxxxxxx:function:MyLambda", '{"operation":"ping"}');
ERROR 1305 (42000): FUNCTION mydb.lambda_sync does not exist
我也试过在这里使用 mysql.lambda_sync/mysql.lambda_async。
根据文档,这些功能应该是我的 aurora 版本的原生功能。
You can call the native functions lambda_sync and lambda_async when you use Aurora MySQL version 1.16 and later.
mysql> select AURORA_VERSION();
+------------------+
| AURORA_VERSION() |
+------------------+
| 2.01.1 |
+------------------+
1 row in set (0.10 sec)
The lambda_sync and lambda_async functions are built-in, native
functions that invoke a Lambda function synchronously or
asynchronously.
我已经阅读了文档,使用 mysql 5.7 兼容性创建了一个 aurora 实例,在我的数据库集群上使用 lambda 调用权限创建了一个角色,并完成了文档中建议的其他六件事.我错过了什么?
Currently, Aurora MySQL 2.01 does not support features added in Aurora MySQL version 1.16 and later.
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html
Aurora/MySQL 2.x 不是 "later" 版本,而是 Aurora/MySQL 1.x...它们是两个不同的发行版系列。本机 Lambda 调用函数在 2.x(尚)中不可用。
我运行正在使用 AWS Aurora 2.02.2 的一个实例,虽然本机 Lambda 调用函数仍然不可用,但它确实支持 mysql.lambda_async 使用
CALL mysql.lambda_async('<<<<< AWS LAMBDA ARN GOES HERE >>>>>>', options);
并且使用此存储过程不需要对它的显式 GRANT INVOKE LAMBDA 特权 运行。一旦我在 AWS 中正确设置了 RDS 访问我的 lambda 函数所需的 IAM 角色,它对我来说开箱即用。
上面调用中的 options 是一个 JSON 对象,其中包含您要传递给函数的参数,由 [=22= 中的事件参数接收] 8.10处理函数。
希望这对那些现在需要该功能的人有所帮助。希望 AWS 端口在不久的将来支持本机功能,但在那之前这对我来说很好。
尝试允许 mysql.lambda_sync / mysql.lambda_async 给您的用户:
GRANT EXECUTE ON PROCEDURE mysql.lambda_async TO 'your_user'@'%'
截至 2020 年 5 月 16 日,我在 AWS Aurora MySQL 2.07.2 上 运行 我可以确认它最终显示为 lambda_async 和 lambda_sync 本机功能已启用并正在运行。它们可能最近由亚马逊悄悄启用,但没有公开宣布。其他人可以证实吗?
当我尝试向我的用户授予 INVOKE LAMBDA 权限时,它因语法错误而失败:
mysql> GRANT INVOKE LAMBDA ON mydb.* TO 'myuser'@'myaddress';
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'INVOKE LAMBDA ON mydb.* TO 'myuser'@'myaddress'' at line 1
lambda_sync和lambda_async函数也没有定义:
mysql> select lambda_sync("arn:aws:lambda:ap-southeast-1:xxxxxxxxxxx:function:MyLambda", '{"operation":"ping"}');
ERROR 1305 (42000): FUNCTION mydb.lambda_sync does not exist
我也试过在这里使用 mysql.lambda_sync/mysql.lambda_async。
根据文档,这些功能应该是我的 aurora 版本的原生功能。
You can call the native functions lambda_sync and lambda_async when you use Aurora MySQL version 1.16 and later.
mysql> select AURORA_VERSION();
+------------------+
| AURORA_VERSION() |
+------------------+
| 2.01.1 |
+------------------+
1 row in set (0.10 sec)
The lambda_sync and lambda_async functions are built-in, native functions that invoke a Lambda function synchronously or asynchronously.
我已经阅读了文档,使用 mysql 5.7 兼容性创建了一个 aurora 实例,在我的数据库集群上使用 lambda 调用权限创建了一个角色,并完成了文档中建议的其他六件事.我错过了什么?
Currently, Aurora MySQL 2.01 does not support features added in Aurora MySQL version 1.16 and later.
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/AuroraMySQL.Updates.20180206.html
Aurora/MySQL 2.x 不是 "later" 版本,而是 Aurora/MySQL 1.x...它们是两个不同的发行版系列。本机 Lambda 调用函数在 2.x(尚)中不可用。
我运行正在使用 AWS Aurora 2.02.2 的一个实例,虽然本机 Lambda 调用函数仍然不可用,但它确实支持 mysql.lambda_async 使用
CALL mysql.lambda_async('<<<<< AWS LAMBDA ARN GOES HERE >>>>>>', options);
并且使用此存储过程不需要对它的显式 GRANT INVOKE LAMBDA 特权 运行。一旦我在 AWS 中正确设置了 RDS 访问我的 lambda 函数所需的 IAM 角色,它对我来说开箱即用。
上面调用中的 options 是一个 JSON 对象,其中包含您要传递给函数的参数,由 [=22= 中的事件参数接收] 8.10处理函数。
希望这对那些现在需要该功能的人有所帮助。希望 AWS 端口在不久的将来支持本机功能,但在那之前这对我来说很好。
尝试允许 mysql.lambda_sync / mysql.lambda_async 给您的用户:
GRANT EXECUTE ON PROCEDURE mysql.lambda_async TO 'your_user'@'%'
截至 2020 年 5 月 16 日,我在 AWS Aurora MySQL 2.07.2 上 运行 我可以确认它最终显示为 lambda_async 和 lambda_sync 本机功能已启用并正在运行。它们可能最近由亚马逊悄悄启用,但没有公开宣布。其他人可以证实吗?