# @aws-cdk/aws-backup 中文文档

规范地址：https://npmcn.com/package/%40aws-cdk/aws-backup/

版本：1\.204\.0
npm 元数据更新时间：2023-11-21T10:14:04.586Z
中文译文更新时间：2026-11-07T16:28:37.661Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aws-cdk/aws-backup
原文对照：https://npmcn.com/package/%40aws-cdk/aws-backup/?lang=original
项目主页：https://github.com/aws/aws-cdk
源码仓库：https://github.com/aws/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

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：1.1 MB，25 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 14\.15\.0
- 运行依赖：10 个
- 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
- 首次发布：2019-07-22T11:48:09.875Z
- 最新版本发布：2023-06-19T21:11:38.157Z
- 近 30 天下载量：4946（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：241（近 12 个月 0 个）

## 中文简介

AWS 的 CDK 构建库: 备份

## 安装

```sh
npm install @aws-cdk/aws-backup
```

也可以使用：`pnpm add @aws-cdk/aws-backup`、`yarn add @aws-cdk/aws-backup`、`bun add @aws-cdk/aws-backup`

## README

# AWS 备份构造库

* * *

![End-of-Support](https://img.shields.io/badge/End--of--Support-critical.svg?style=for-the-badge)

> AWS CDK v1在2023-06-01上达到了支持结束. 此软件包不再更新,用户应该迁移到 AWS CDK v2.
> 
> 关于如何移徙的更多信息,请参见: [_移动到 AWS CDK v2_ 指南](https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html)。 。 。 .

* * *

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

## 备份计划和选择

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

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

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

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

```ts
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()`数字 :

```ts
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 天 :

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

现成的规则也有:

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

默认新建 [保险库](https://npmcn.com/package/%40aws-cdk/aws-backup/#readme-Backup-vault) 在创建计划时创建. 也可以在计划一级或 规则级别.

```ts
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
```

你们可以 [备份](https://docs.aws.amazon.com/aws-backup/latest/devguide/windows-backups.html) VSS 启用的 Windows 应用程序通过设置运行在 Amazon EC2 实例上 `windowsVss` 参数改为 `true`如果应用程序在 Windows VSS 中注册了 VSS 写入器, 然后 AWS 备份创建了该应用程序的相容快照 .

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

## 备份金库

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

```ts
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` 属性以创建备份金库策略 :

```ts
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()` 添加方法 用于防止在您的金库中删除回收点的金库访问策略的语句 :

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

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

默认访问不受限制.

## 导入已存在的备份金库

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

```ts
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 是什么？

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。作者已将其标记为弃用，新项目建议寻找替代方案。

