【问题标题】:Is it possible to update existing Dynamo DB table from Terraform是否可以从 Terraform 更新现有的 Dynamo DB 表
【发布时间】:2020-07-27 17:32:13
【问题描述】:

我正在尝试创建一个 terraform 模块,借助它我可以对现有的 Dynamo DB 表进行条目。 我有这个创建发电机数据库表的代码

resource "aws_dynamodb_table" "basic-dynamodb-table" {
  name           = "GameScores"
  billing_mode   = "PROVISIONED"
  read_capacity  = 20
  write_capacity = 20
  hash_key       = "UserId"
  range_key      = "GameTitle"

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

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

  attribute {
    name = "TopScore"
    type = "N"
  }

  ttl {
    attribute_name = "TimeToExist"
    enabled        = false
  }

  global_secondary_index {
    name               = "GameTitleIndex"
    hash_key           = "GameTitle"
    range_key          = "TopScore"
    write_capacity     = 10
    read_capacity      = 10
    projection_type    = "INCLUDE"
    non_key_attributes = ["UserId"]
  }

  tags = {
    Name        = "dynamodb-table-1"
    Environment = "production"
  }
}

有什么方法可以更改现有的 dynamo db 表。

【问题讨论】:

  • 欢迎来到 SO! “做出改变”到底是什么意思?您可以更改除分区和范围键之外的任何内容,而无需 terraform 破坏和重新创建表。如果您想将现有表导入 terraform,则有 terraform import (terraform.io/docs/import/usage.html)
  • 感谢 mate 的热烈欢迎,提出这个问题,我不想创建或重新创建任何东西,我只想在 terraform 的帮助下在 dynamo db 表中添加条目。

标签: amazon-dynamodb terraform


【解决方案1】:

要向表中添加条目,您可以查看aws_dynamodb_table_item 资源。下面是一个可用于向表中添加条目的示例:

resource "aws_dynamodb_table_item" "item1" {
    table_name     = aws_dynamodb_table.basic-dynamodb-table.name
    hash_key       = aws_dynamodb_table.basic-dynamodb-table.hash_key
    range_key      = aws_dynamodb_table.basic-dynamodb-table.range_key

    item = <<ITEM
{
    "UserId": {"S": "user"},
    "GameTitle": {"S": "gamex"},
    "TopScore": {"N": "42"}
}
ITEM
}

【讨论】:

  • 它似乎可以工作,但最后它给了我这个错误:aws_dynamodb_table_item.Tagging: Creating... Error: ConditionalCheckFailedException: The conditional request failed on rider.tf line 1, in resource “aws_dynamodb_table_item”“标记”:1:资源“aws_dynamodb_table_item”“标记”{
  • 我无法分析错误消息,您的 Terraform 配置似乎已更改。由于这与原始帖子无关,我恳请您为此打开一个新问题,并包括您当前的 Terraform 文件以及完整的错误消息。
  • 我应该在前面提到这一点,因为我首先导入了现有 dynamo db 表的配置,然后尝试向其中添加一项。我没有改变其他任何东西。
猜你喜欢
  • 2018-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-05-23
  • 1970-01-01
  • 2021-10-13
  • 2019-08-23
  • 2016-02-15
相关资源
最近更新 更多