AWS DynamoDB Terraform module that supports dynamic GSI's, LSI's, and table attributes.
Please note the ignore changes set by default to prevent change deployments to AWS, remove when needed:
lifecycle {
  ignore_changes = [
    read_capacity,
    write_capacity,
    global_secondary_index,
    local_secondary_index
  ]
}module "dynamodb" {
  source = "github.com/rpstreef/tf-dynamodb?ref=v1.0"
  resource_tag_name = var.resource_tag_name
  namespace         = var.namespace
  region            = var.region
  dynamodb_table_name = var.dynamodb_table_name
  hash_key            = var.dynamodb_hash_key
  range_key           = var.dynamodb_range_key
  attributes = [
    {
      name = var.dynamodb_hash_key
      type = "S"
    },
    {
      name = var.dynamodb_range_key
      type = "S"
    }
  ]
  global_secondary_index_map = [
    {
      name               = var.dynamodb_gsi_1_name
      hash_key           = var.dynamodb_gsi_1_hash_key
      range_key          = var.dynamodb_gsi_1_range_key
      projection_type    = var.dynamodb_gsi_1_projection_type
      write_capacity     = var.dynamodb_gsi_1_write_capacity
      read_capacity      = var.dynamodb_gsi_1_read_capacity
      non_key_attributes = null
    }
  ]
}- Added module on/off switch 
dynamodb_module_enabled - Added full dynamodb output object
 
Initial release