首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在DynamoDB副本上设置实时恢复

如何在DynamoDB副本上设置实时恢复
EN

Stack Overflow用户
提问于 2022-01-12 19:02:46
回答 1查看 382关注 0票数 0

我正在使用CDK在DynamoDB上创建一个全局表。我想在所有的复制品上设置实时恢复。但是,PITR只在原始表上设置,而不是在其他副本上设置。这是我的密码。

代码语言:javascript
复制
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,
    });
  }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-01-13 10:27:00

我想出了解决这个问题的办法。我对全局表使用了L1构造。我之前使用的L2构造似乎不支持为副本设置PITR。下面是一个有效的代码示例

代码语言:javascript
复制
new CfnGlobalTable(this, 'Music', {
      tableName: 'Music',
      attributeDefinitions: [
        {attributeName: 'SongTitle', attributeType: AttributeType.STRING},
      ],
      keySchema: [{attributeName: 'SongTitle', keyType: 'HASH'}],
      billingMode: BillingMode.PAY_PER_REQUEST,
      streamSpecification: { streamViewType: "NEW_AND_OLD_IMAGES" },
      replicas: ['us-east-1', 'eu-west-1'].map(region => {
        return {
          region: region,
          pointInTimeRecoverySpecification: { pointInTimeRecoveryEnabled: true }
        };
      })
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70687039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档