A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://github.com/hashicorp/terraform-provider-aws/issues/13097 below:

DynamoDB with Global table v2019.11.21 and PROVISIONED and autscaling generates Table Capacity and/or GSI capacityValidationException · Issue #13097 · hashicorp/terraform-provider-aws · GitHub

Community Note Terraform Version
Terraform v0.12.24
provider.aws v2.59.0
Affected Resource(s) Terraform Configuration Files
resource "aws_dynamodb_table" "table" {
  billing_mode     = "PROVISIONED"
  hash_key         = "PK"
  name             = "test-one"
  read_capacity    = 10
  write_capacity   = 5
  stream_enabled   = true
  stream_view_type = "NEW_AND_OLD_IMAGES"
  attribute {
    name = "PK"
    type = "S"
  }
  replica {
    region_name = "us-west-2"
  }
}

resource "aws_appautoscaling_target" "dynamodb-table_read_target" {
  max_capacity       = 100
  min_capacity       = 50
  resource_id        = "table/${aws_dynamodb_table.table.name}"
  scalable_dimension = "dynamodb:table:ReadCapacityUnits"
  service_namespace  = "dynamodb"
}

resource "aws_appautoscaling_policy" "dynamodb-table_read_policy" {
  name               = "dynamodb-read-capacity-utilization-${aws_appautoscaling_target.dynamodb-table_read_target.resource_id}"
  policy_type        = "TargetTrackingScaling"
  resource_id        = aws_appautoscaling_target.dynamodb-table_read_target.resource_id
  scalable_dimension = aws_appautoscaling_target.dynamodb-table_read_target.scalable_dimension
  service_namespace  = aws_appautoscaling_target.dynamodb-table_read_target.service_namespace

  target_tracking_scaling_policy_configuration {
    predefined_metric_specification {
      predefined_metric_type = "DynamoDBReadCapacityUtilization"
    }
    target_value = 70
  }
}

resource "aws_appautoscaling_target" "dynamodb-table_write_target" {
  max_capacity       = 100
  min_capacity       = 50
  resource_id        = "table/${aws_dynamodb_table.table.name}"
  scalable_dimension = "dynamodb:table:WriteCapacityUnits"
  service_namespace  = "dynamodb"
}

resource "aws_appautoscaling_policy" "dynamodb-table_write_policy" {
  name               = "dynamodb-write-capacity-utilization-${aws_appautoscaling_target.dynamodb-table_write_target.resource_id}"
  policy_type        = "TargetTrackingScaling"
  resource_id        = aws_appautoscaling_target.dynamodb-table_write_target.resource_id
  scalable_dimension = aws_appautoscaling_target.dynamodb-table_write_target.scalable_dimension
  service_namespace  = aws_appautoscaling_target.dynamodb-table_write_target.service_namespace

  target_tracking_scaling_policy_configuration {
    predefined_metric_specification {
      predefined_metric_type = "DynamoDBWriteCapacityUtilization"
    }
    target_value = 70
  }
}
Debug Output

gist

Panic Output

NA

Expected Behavior

Replica for Gobal tables v2019.11.21 should play nicely with autoscaling:

  1. create the table
  2. create the autoscaling target and policies
  3. apply the replication
Actual Behavior

Errors out with a message:

error creating DynamoDB Table (test-one) replicas: error creating DynamoDB Table (test-one) replicas: ValidationException: Table write capacity should either be Pay-Per-Request or AutoScaled.
Steps to Reproduce
  1. terraform apply
Important Factoids

NA

References

glkz, parkeyparker, dbednall, ksaio, onema and 63 morehiren929


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4