I am creating a Global Table on DynamoDB using CDK. I want to set Point-In-Time Recovery on all the Replicas. However, PITR only gets set on the original table, but not on the other replicas. Here is my code.
import { Stack, StackProps, App } from 'aws-cdk-lib';
import { Table, BillingMode, AttributeType, StreamViewType } from 'aws-cdk-lib/aws-dynamodb';
export class HelloCdkStack extends Stack {
constructor(scope: App, id: string, props?: StackProps) {
super(scope, id, props);
new Table(this, 'Movies', {
tableName: 'Music',
partitionKey: {
name: 'Artist',
type: AttributeType.STRING
},
sortKey: {
name: 'SongTitle',
type: AttributeType.STRING
},
billingMode: BillingMode.PAY_PER_REQUEST,
replicationRegions: ['eu-west-1'],
pointInTimeRecovery: true,
stream: StreamViewType.NEW_AND_OLD_IMAGES,
});
}
}
I figured out a way around this issue. I used the L1 Construct for Global Tables. It seems like the L2 Construct that I was using before does not support setting PITR for replicas. Here is an example of the code that worked