You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用AWS Typescript CDK创建DynamoDB表并实现备份求助

使用AWS TypeScript CDK创建DynamoDB表并配置备份

完整实现示例

以下是包含DynamoDB表创建、AWS Backup计划及备份规则配置的完整TypeScript CDK代码:

import * as cdk from 'aws-cdk-lib';
import { Construct } from 'constructs';
import * as dynamodb from 'aws-cdk-lib/aws-dynamodb';
import * as backup from 'aws-cdk-lib/aws-backup';

export class DynamoDbBackupStack extends cdk.Stack {
  constructor(scope: Construct, id: string, props?: cdk.StackProps) {
    super(scope, id, props);

    // 创建DynamoDB表
    const demoTable = new dynamodb.Table(this, 'DemoTable', {
      tableName: 'DemoTable',
      partitionKey: { name: 'id', type: dynamodb.AttributeType.STRING },
      billingMode: dynamodb.BillingMode.PAY_PER_REQUEST,
      removalPolicy: cdk.RemovalPolicy.RETAIN, // 生产环境建议保留,避免误删数据
    });

    // 创建Backup存储库(Vault)
    const backupVault = new backup.BackupVault(this, 'DemoBackupVault', {
      backupVaultName: 'DemoDynamoDbBackupVault',
      removalPolicy: cdk.RemovalPolicy.RETAIN,
    });

    // 创建Backup计划
    const backupPlan = new backup.BackupPlan(this, 'DemoBackupPlan', {
      backupVault: backupVault,
    });

    // 添加每日定时备份规则,保留30天
    backupPlan.addRule(new backup.BackupPlanRule({
      ruleName: 'DailyBackup',
      schedule: backup.Schedule.cron({ hour: '2', minute: '0' }), // 每日凌晨2点执行备份
      deleteAfter: cdk.Duration.days(30),
    }));

    // 添加按需备份规则(支持手动触发,保留90天)
    backupPlan.addRule(new backup.BackupPlanRule({
      ruleName: 'OnDemandBackup',
      deleteAfter: cdk.Duration.days(90),
    }));

    // 将DynamoDB表关联到Backup计划
    backupPlan.addSelection('DemoTableSelection', {
      resources: [backup.BackupResource.fromDynamoDbTable(demoTable)],
      selectionName: 'DemoDynamoDbTableSelection',
    });
  }
}

// 初始化并合成栈
const app = new cdk.App();
new DynamoDbBackupStack(app, 'DynamoDbBackupStack');
app.synth();

关键说明

  • Backup Vault:存储备份数据的容器,默认使用AWS KMS加密,可自定义加密密钥或访问策略。
  • 备份规则:支持定时和按需两种模式,通过deleteAfter配置备份保留时长,超过时长自动清理。
  • 资源关联:通过addSelection将指定DynamoDB表绑定到备份计划,CDK会自动生成所需IAM权限,无需手动配置。
  • 移除策略:示例中设置RemovalPolicy.RETAIN,避免栈销毁时误删表或备份数据,生产环境建议保留,测试环境可改为DESTROY。

部署验证

部署完成后,可通过AWS控制台确认:

  • 进入Backup服务,查看已创建的备份计划和存储库。
  • 进入目标DynamoDB表的「备份」标签页,确认已关联备份计划。

内容的提问来源于stack exchange,提问作者Andy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 21:10:29