@aws-cdk/aws-backup

中文文档
1.204.0发布于 2023/06/20Apache-2.0TypeScriptCommonJS近 30 天下载 4946

AWS 的 CDK 构建库: 备份

此软件包已被标记为弃用

AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html

中文使用文档
文档目录3 节
  1. 备份计划和选择
  2. 备份金库
  3. 导入已存在的备份金库

AWS 备份构造库


End-of-Support

AWS CDK v1在2023-06-01上达到了支持结束. 此软件包不再更新,用户应该迁移到 AWS CDK v2.

关于如何移徙的更多信息,请参见: 移动到 AWS CDK v2 指南。 。 。 .


AWS 备份是一个完全管理的备份服务,它容易集中和自动化 将数据备份到云层和房地的AWS服务。 使用 AWS 备份,可以 为您的 AWS 资源配置备份政策和监视备份活动.

备份计划和选择

在 AWS 备份中, a 备用计划 用于定义何时以及如何备份的政策表达式 您的 AWS 资源, 如 Amazon DynamoDB 表格或 Amazon 弹性文件系统文件 系统。 您可以为备份计划指派资源, AWS 备份会自动备份并保留 根据备份计划提供这些资源的备份。 您可以创建多个备份计划, 如果您 有不同备份需求的工作量.

本模块提供现成的备份计划(类似于控制台的经验):

// Daily, weekly and monthly with 5 year retention
const plan = backup.BackupPlan.dailyWeeklyMonthly5YearRetention(this, 'Plan');

将资源分配给一个计划,可以用 addSelection()数字 :

declare const plan: backup.BackupPlan;
const myTable = dynamodb.Table.fromTableName(this, 'Table', 'myTableName');
const myCoolConstruct = new Construct(this, 'MyCoolConstruct');

plan.addSelection('Selection', {
  resources: [
    backup.BackupResource.fromDynamoDbTable(myTable), // A DynamoDB table
    backup.BackupResource.fromTag('stage', 'prod'), // All resources that are tagged stage=prod in the region/account
    backup.BackupResource.fromConstruct(myCoolConstruct), // All backupable resources in `myCoolConstruct`
  ]
})

如果没有具体说明,将设立一个新的IAM角色,并有管理下的备份政策 为选择创建。 这个 BackupSelection 执行 IGrantable。 。 。 .

在计划中添加规则,使用 addRule()数字 :

declare const plan: backup.BackupPlan;
plan.addRule(new backup.BackupPlanRule({
  completionWindow: Duration.hours(2),
  startWindow: Duration.hours(1),
  scheduleExpression: events.Schedule.cron({ // Only cron expressions are supported
    day: '15',
    hour: '3',
    minute: '30',
  }),
  moveToColdStorageAfter: Duration.days(30),
}));

可配置连续备份和点入时间恢复(PITR). 财产 deleteAfter 定义备份的保留期。 如果启用了 PITR, 则必须使用 . 如果没有指定价值,留存期被确定为35天,这是PITR支持的最大留存期. 财产 moveToColdStorageAfter 不可指定,因为 PITR 不支持此选项. 这个例子定义了 AWS 备份规则与 PITR 和保留期设定为 14 天 :

declare const plan: backup.BackupPlan;
plan.addRule(new backup.BackupPlanRule({
  enableContinuousBackup: true,
  deleteAfter: Duration.days(14),
}));

现成的规则也有:

declare const plan: backup.BackupPlan;
plan.addRule(backup.BackupPlanRule.daily());
plan.addRule(backup.BackupPlanRule.weekly());

默认新建 保险库 在创建计划时创建. 也可以在计划一级或 规则级别.

const myVault = backup.BackupVault.fromBackupVaultName(this, 'Vault1', 'myVault');
const otherVault = backup.BackupVault.fromBackupVaultName(this, 'Vault2', 'otherVault');

const plan = backup.BackupPlan.daily35DayRetention(this, 'Plan', myVault); // Use `myVault` for all plan rules
plan.addRule(backup.BackupPlanRule.monthly1Year(otherVault)); // Use `otherVault` for this specific rule

你们可以 备份 VSS 启用的 Windows 应用程序通过设置运行在 Amazon EC2 实例上 windowsVss 参数改为 true如果应用程序在 Windows VSS 中注册了 VSS 写入器, 然后 AWS 备份创建了该应用程序的相容快照 .

const plan = new backup.BackupPlan(this, 'Plan', {
  windowsVss: true,
});

备份金库

在 AWS 备份中, a 备份金库 是您组织备份的容器。 您可以使用备份 设置用于加密备份的 AWS 密钥管理服务( AWS KMS) 加密密钥的金库 在备用金库中,并控制对备用金库中备用金的访问。 如果你要求不同的话 为不同的备份组加密密钥或访问策略, 您可以选择创建多个 备用金库.

const myKey = kms.Key.fromKeyArn(this, 'MyKey', 'aaa');
const myTopic = sns.Topic.fromTopicArn(this, 'MyTopic', 'bbb');

const vault = new backup.BackupVault(this, 'Vault', {
  encryptionKey: myKey, // Custom encryption key
  notificationTopic: myTopic, // Send all vault events to this SNS topic
});

保险库有默认值 RemovalPolicy 设置为 RETAIN。请注意,移除一个金库 包含回收点的回收点将失败.

您可以为备份金库和其中包含的资源分配策略 。 指定政策允许 ,但限制 他们有能力在创建后删除恢复点.

使用 accessPolicy 属性以创建备份金库策略 :

const vault = new backup.BackupVault(this, 'Vault', {
  accessPolicy: new iam.PolicyDocument({
    statements: [
      new iam.PolicyStatement({
        effect: iam.Effect.DENY,
        principals: [new iam.AnyPrincipal()],
        actions: ['backup:DeleteRecoveryPoint'],
        resources: ['*'],
        conditions: {
          StringNotLike: {
            'aws:userId': [
              'user1',
              'user2',
            ],
          },
        },
      }),
    ],
  }),
})

可使用 addToAccessPolicy()。 。 。 .

使用 blockRecoveryPointDeletion 属性或 blockRecoveryPointDeletion() 添加方法 用于防止在您的金库中删除回收点的金库访问策略的语句 :

new backup.BackupVault(this, 'Vault', {
  blockRecoveryPointDeletion: true,
});

declare const backupVault: backup.BackupVault;
backupVault.blockRecoveryPointDeletion();

默认访问不受限制.

导入已存在的备份金库

要将已有的备份金库导入您的 CDK 应用程序, 请使用 BackupVault.fromBackupVaultArn 或者说 BackupVault.fromBackupVaultName 静态方法。 以下是给予IAM角色权限启动备份任务的例子:

const importedVault = backup.BackupVault.fromBackupVaultName(this, 'Vault', 'myVaultName');

const role = new iam.Role(this, 'Access Role', { assumedBy: new iam.ServicePrincipal('lambda.amazonaws.com') });

importedVault.grant(role, 'backup:StartBackupJob');

版本与发布记录

@aws-cdk/aws-backup 共发布 241 个版本,首次发布于 2019/07/22;过去 12 个月发布了 0 个版本。

版本发布日期距今
1.204.0latest2023/06/203 年前
1.203.02023/06/013 年前
1.202.02023/05/223 年前
1.201.02023/05/113 年前
1.200.02023/04/273 年前
1.199.02023/04/213 年前

关于 @aws-cdk/aws-backup 的常见问题

@aws-cdk/aws-backup 是什么?

AWS 的 CDK 构建库: 备份注意:该包已被作者标记为弃用——AWS CDK v1 has reached End-of-Support on 2023-06-01. This package is no longer being updated, and users should migrate to AWS CDK v2. For more information on how to migrate, see https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html

如何安装 @aws-cdk/aws-backup?

在项目目录运行 npm install @aws-cdk/aws-backup,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@aws-cdk/aws-dynamodb(1.204.0)、@aws-cdk/aws-ec2(1.204.0)、@aws-cdk/aws-efs(1.204.0)、@aws-cdk/aws-events(1.204.0)、@aws-cdk/aws-iam(1.204.0)、@aws-cdk/aws-kms(1.204.0)、@aws-cdk/aws-rds(1.204.0)、@aws-cdk/aws-sns(1.204.0)、@aws-cdk/core(1.204.0)、constructs(^3.3.69)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws-cdk/aws-backup 支持 TypeScript 吗?

支持。包内自带 TypeScript 类型声明(package.json 声明了 types 入口),安装后即可获得类型提示,无需再安装 @types 包。

@aws-cdk/aws-backup 支持 ESM 还是 CommonJS?

以 CommonJS 形式发布,可以直接 require();在 ES Module 项目中也可以用 import 引入(Node.js 会把 module.exports 作为默认导出)。

@aws-cdk/aws-backup 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >= 14.15.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@aws-cdk/aws-backup 可以商用吗?

@aws-cdk/aws-backup 使用 Apache-2.0 许可。宽松许可:允许商业使用、修改和再分发,并附带明确的专利授权;分发时需保留许可与 NOTICE 文件,修改过的文件要注明改动。以上为概括,不构成法律意见,请以许可原文为准。

@aws-cdk/aws-backup 的下载量有多少?

根据 npm 官方下载统计,@aws-cdk/aws-backup 在 2026/10/07 – 2026/11/05 这 30 天内被下载 4,946 次,日均约 165 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@aws-cdk/aws-backup 还在维护吗?

最新版本 1.204.0 发布于 2023/06/20(3 年前);至今共发布 241 个版本,其中过去 12 个月发布了 0 个;首次发布于 2019/07/22。作者已将其标记为弃用,新项目建议寻找替代方案。