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

如何通过Terraform配置DynamoDB触发器仅响应INSERT类型事件

解决方案

你需要在aws_lambda_event_source_mapping资源中添加事件过滤规则,仅匹配DynamoDB流的INSERT事件即可,该过滤逻辑会在Lambda事件源侧直接生效,不符合条件的事件不会触发Lambda运行。

前置要求

确保你的AWS Terraform Provider版本 >= 3.64.0,该版本首次引入了filter_criteria参数用于事件源过滤。

修改后的Terraform配置

DynamoDB表的配置不需要改动,仅调整Lambda事件源映射部分即可,完整修改后的资源代码如下:

resource "aws_dynamodb_table" "filenames" {
  name           = local.dynamodb_table_filenames
  billing_mode   = "PROVISIONED"
  read_capacity  = 1000
  write_capacity = 1000
  hash_key       = "filename"
  stream_enabled = true
  stream_view_type = "NEW_IMAGE"

  attribute {
    name = "filename"
    type = "S"
  }

  tags = var.tags
}

resource "aws_lambda_event_source_mapping" "allow_dynamodb_table_to_trigger_lambda" {
  event_source_arn  = aws_dynamodb_table.filenames.stream_arn
  function_name     = aws_lambda_function.trigger_stepfunction_lambda.arn
  starting_position = "LATEST"

  # 新增的事件过滤配置
  filter_criteria {
    filter {
      pattern = jsonencode({
        eventName = ["INSERT"]
      })
    }
  }
}

配置说明

  • 过滤规则中eventName = ["INSERT"]表示仅匹配DynamoDB流的新增条目事件,如果你后续需要同时支持其他事件类型,可直接在数组中追加,例如["INSERT", "MODIFY"]表示新增和修改条目时都会触发Lambda。
  • 该过滤规则无需修改Lambda代码即可生效,也不会产生不符合条件事件的Lambda调用费用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:54:02