// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: MIT-0 data "aws_secretsmanager_secret" "dynamodb-primary-kms-key" { name = "${var.APP}-dynamodb-primary-kms-key" } data "aws_secretsmanager_secret_version" "dynamodb-primary-kms-key-version" { secret_id = data.aws_secretsmanager_secret.dynamodb-primary-kms-key.id } data "aws_secretsmanager_secret" "dynamodb-secondary-kms-key" { name = "${var.APP}-dynamodb-secondary-kms-key" } data "aws_secretsmanager_secret_version" "dynamodb-secondary-kms-key-version" { secret_id = data.aws_secretsmanager_secret.dynamodb-secondary-kms-key.id } module "dynamodb_table" { source = "terraform-aws-modules/dynamodb-table/aws" name = "${var.APP}-${var.COMPONENT}-dynamodb-store" hash_key = "id" stream_enabled = true stream_view_type = "NEW_AND_OLD_IMAGES" server_side_encryption_enabled = true server_side_encryption_kms_key_arn = data.aws_secretsmanager_secret_version.dynamodb-primary-kms-key-version.secret_string point_in_time_recovery_enabled = true // billing_mode = "PROVISIONED" // read_capacity = 100 // write_capacity = 100 attributes = [ { name = "id" type = "S" }, { name = "timestamp" type = "N" }, { name = "currentDate" type = "S" } ] global_secondary_indexes = [{ name = "currentDate" hash_key = "currentDate" range_key = "timestamp" projection_type = "ALL" non_key_attributes = [] }] replica_regions = [{ region_name = var.AWS_SECONDARY_REGION kms_key_arn = data.aws_secretsmanager_secret_version.dynamodb-secondary-kms-key-version.secret_string }] tags = { Industry = "GFS" Program = "AppRotation" Application = var.APP Component = var.COMPONENT Environment = var.ENV } } //resource "aws_ssm_parameter" "dynamodb_param" { // name = "/approtation/${var.APP}/${var.COMPONENT}/dynamodb" // type = "String" // value = "${var.APP}-${var.COMPONENT}-dynamodb-store" //} module "secret" { source = "../secret" NAME = "${var.APP}-${var.COMPONENT}-dynamodb" VALUE = "${var.APP}-${var.COMPONENT}-dynamodb-store" AWS_BACKUP_REGION = var.AWS_SECONDARY_REGION }