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

使用Terraform配置CloudWatch定时触发Lambda的自定义事件传递问题

问题根因

你配置的event_pattern参数作用是匹配过滤已有事件,而非定义触发时传递给目标的自定义内容。定时触发的CloudWatch Event规则无需配置event_pattern,你写在该字段下的自定义参数不会被传递到Lambda。

正确配置调整

1. 修正CloudWatch Event规则

删除无效的event_pattern字段,调整后的规则配置如下:

resource "aws_cloudwatch_event_rule" "group1-rule" {
  name                = "Group1"
  description         = "Group1"
  schedule_expression = "rate(10 minutes)"
  is_enabled          = true
}

2. 配置事件目标并传入自定义参数

在aws_cloudwatch_event_target资源中通过input参数定义要传递的自定义内容,示例配置如下:

resource "aws_cloudwatch_event_target" "group1-lambda-target" {
  rule      = aws_cloudwatch_event_rule.group1-rule.name
  arn       = "替换为你的Lambda函数ARN"
  # 此处定义要传递给Lambda的自定义事件内容
  input     = <<EOF
{
  "source": "Group1",
  "groupNumber": "Group1",
  "notificationDate": "-"
}
EOF
}

3. 配置Lambda触发权限(若未配置)

需要添加权限允许CloudWatch Event调用你的Lambda函数:

resource "aws_lambda_permission" "group1-event-invoke-lambda" {
  statement_id  = "AllowExecutionFromCloudWatchEvent"
  action        = "lambda:InvokeFunction"
  function_name = "替换为你的Lambda函数名称"
  principal     = "events.amazonaws.com"
  source_arn    = aws_cloudwatch_event_rule.group1-rule.arn
}

配置完成后,Lambda收到的事件就是你在input字段中定义的JSON结构。如果你需要保留CloudWatch默认的定时事件结构,仅填充detail字段,只需把默认结构的其他字段也补充到input的JSON中即可。


内容的提问来源于stack exchange,提问作者devx

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.23 19:24:02