更新 DynamoDB 表时出错:表已启用流

Posted

技术标签:

【中文标题】更新 DynamoDB 表时出错:表已启用流【英文标题】:error updating DynamoDB Table: Table already has an enabled stream 【发布时间】:2021-12-28 22:04:41 【问题描述】:

我正在定义一个发电机表和触发器,如下所示:

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 之前,我没有看到此错误。如果我删除这两个属性,我会得到另一个错误,所以我无法删除它们。

【问题讨论】:

您是否通过 AWS 控制台在表上手动启用了 DynamoDB 流? 【参考方案1】:

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

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

【讨论】:

***.com/questions/70016674/…。你也可以看看这里吗?

以上是关于更新 DynamoDB 表时出错:表已启用流的主要内容,如果未能解决你的问题,请参考以下文章

DynamoDB 流 和 AWS Lambda 触发器

Amazon RDS:ER_RECORD_FILE_FULL:在存储过程中创建临时表时表已满

使用 DynamoDB 流 捕获表活动

DynamoDB 静态加密

使用 Terraform 更改 hash_key 会导致表已存在错误

使用 DataGrid 更新访问表时出错