更新 DynamoDB 时出错 Table:Table 已经有启用的流

error updating DynamoDB Table: Table already has an enabled stream

我正在定义发电机 table 并像这样触发:

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"

  #range_key      = ""

  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"
}

运行 terraform apply 后,我收到以下错误:

error updating DynamoDB Table (xzy): ValidationException: Table already has an enabled stream: TableName: 4 xzy

我在添加 stream_enabledstream_view_type 之前没有看到这个错误。如果我删除这两个属性,我将收到另一个错误,因此我无法删除它们。

dynamo db Stream 可能从一开始就启用了 您不能更改 stream_view_type 已经启用的 dynamodb 流的参数,dynamodb 文档没有提到它。

我建议您创建一个新的 table 并同时启用 dyanmodb stream_enabled: truestream_view_type:[]