You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Aurora中启用lambda_sync/lambda_async及解决权限授予报错

解决Aurora MySQL中Lambda相关的权限与函数问题

我来一步步帮你搞定这两个问题——Aurora MySQL的Lambda集成逻辑和标准MySQL有不少区别,咱们逐个拆解:

问题1:GRANT INVOKE LAMBDA触发语法错误

首先得明确:这个语法本身就不是Aurora MySQL支持的。Aurora和Lambda的交互权限不是通过MySQL原生的GRANT语句管控的,而是依赖AWS IAM角色来实现Lambda调用权限的授权。

正确的权限配置步骤是:

  • 先创建一个IAM角色,给它附加包含lambda:InvokeFunction动作的权限策略(可以用现成的AWSLambdaRole托管策略,或者自定义策略指定你要调用的Lambda ARN)。
  • 把这个IAM角色关联到你的Aurora MySQL集群(在AWS控制台的集群详情页,找到「关联IAM角色」选项,选择刚创建的角色即可)。
  • 最后给你的数据库用户授予Lambda函数的执行权限(因为lambda_sync/lambda_async是数据库函数,需要EXECUTE权限):
    GRANT EXECUTE ON FUNCTION lambda_sync TO 'myuser'@'myaddress';
    GRANT EXECUTE ON FUNCTION lambda_async TO 'myuser'@'myaddress';
    

问题2:lambda_sync/lambda_async函数未定义 & 启用方法

这两个函数属于Aurora MySQL的可选插件功能,默认不会自动启用,需要手动安装对应的插件:

  1. 先确认你的Aurora集群是MySQL 5.7兼容版本及以上(该插件从Aurora MySQL 5.7开始支持,8.0版本也完全兼容)。
  2. 使用集群的管理员账号(比如创建集群时的主用户)执行插件安装语句:
    INSTALL PLUGIN aws_lambda SONAME 'aws_lambda.so';
    
  3. 验证插件是否成功启用:
    SELECT PLUGIN_NAME, PLUGIN_STATUS 
    FROM INFORMATION_SCHEMA.PLUGINS 
    WHERE PLUGIN_NAME = 'aws_lambda';
    
    如果返回的PLUGIN_STATUS为ACTIVE,就说明插件已经生效了。
  4. 现在你就可以正常调用lambda_sync("arn:aws:lambda:ap-southeast-1:xx...")或者lambda_async(...)函数了。

小贴士:如果你的Aurora集群包含多个只读实例,插件安装在主实例后,只读实例会自动同步这个配置,不需要单独操作。

内容的提问来源于stack exchange,提问作者ellipse-of-uncertainty

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 09:07:41