Amazon web services 使用Terraform更改哈希_键会导致表已存在错误

Amazon web services 使用Terraform更改哈希_键会导致表已存在错误,amazon-web-services,amazon-dynamodb,terraform-provider-aws,terraform0.14.7,Amazon Web Services,Amazon Dynamodb,Terraform Provider Aws,Terraform0.14.7,我用这个地形创建了一个DynamoDB表格: resource "aws_dynamodb_table" "materials_table" { name = "materials" hash_key = "MATERIAL" billing_mode = "PROVISIONED" read_capacity = 5

我用这个地形创建了一个DynamoDB表格:

resource "aws_dynamodb_table" "materials_table" {
  name              = "materials"
  hash_key          = "MATERIAL"
  billing_mode      = "PROVISIONED"
  read_capacity     = 5
  write_capacity    = 5
  
  attribute {
    name = "MATERIAL"
    type = "S"
  }
}
该表已成功填充(如中所述,有4条记录),但为了解决该问题(在该帖子中),我添加了一个字段
PK
,并将其设置为
hash_key
字段,如下所示:

resource "aws_dynamodb_table" "materials_table" {
  name              = "materials"
  hash_key          = "PK"
  billing_mode      = "PROVISIONED"
  read_capacity     = 5
  write_capacity    = 5
  
  attribute {
    name = "PK"
    type = "S"
  }
}
运行
terraform apply
时,这导致了以下错误:

Error: error creating DynamoDB Table: ResourceInUseException: Table already exists: materials

我需要在
.tf
中做什么才能接受更改?

不允许更改DynamoDB中的某些属性,例如,更改分区键、添加本地辅助索引等

当发生此类更改时,它将需要替换资源,要替换,它将尝试删除并重新创建资源。在此过程中,如果表已经存在,它将失败

唯一的选择是删除堆栈或手动删除DynamoDB表,然后让模板再次创建它。或者重命名该表

说它将强制新的资源

hash_key-(必需,强制新资源)要用作 散列(分区)键


我使用的是Terraform,而不是CloudFormation。我本来希望删除该表,但错误表明没有尝试这样做。我认为,它将首先尝试创建该表,然后删除它。因此重命名该表应有助于删除它….?100%。改名肯定会有所帮助。