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

Terraform配置Lambda函数EventBridge触发器失败问题排查

问题分析

你遇到的核心问题是权限配置方向错误:你将lambda:InvokeFunction权限授予了Lambda的执行角色,但实际上需要配置的是允许CloudWatch EventBridge服务调用你的Lambda函数。Lambda执行角色的作用是定义Lambda自身能访问哪些资源,而非授权外部实体触发Lambda。

解决方案

删除现有的aws_iam_policy.lambda_invoke_policy和aws_iam_policy_attachment.lambda_invoke_attachment资源,替换为aws_lambda_permission资源,明确授权EventBridge触发你的Lambda函数。

修正后的权限配置代码如下:

resource "aws_lambda_permission" "allow_cloudwatch_invoke" {
  statement_id  = "AllowCloudWatchEventsInvoke"
  action        = "lambda:InvokeFunction"
  function_name = aws_lambda_function.lambda.function_name
  principal     = "events.amazonaws.com"
  source_arn    = aws_cloudwatch_event_rule.lambda_cron_trigger.arn
}
说明
  • principal: 指定允许调用Lambda的实体为EventBridge服务(events.amazonaws.com)
  • source_arn: 限制该权限仅适用于你创建的特定EventBridge规则,提升安全性
  • function_name: 直接关联到你的目标Lambda函数

应用此修改后,EventBridge规则会正确关联到Lambda函数,定时触发器将按照Cron表达式执行,并传递你指定的参数。

内容的提问来源于stack exchange,提问作者Ravi kant Gautam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 22:48:32