

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 使用分配资源 AWS CLI
<a name="assigning-resources-json"></a>

## 按服务或资源类型筛选
<a name="resource-assignment-filter"></a>

资源选择基于服务名称和资源类型。资源选择的方法决定了资源是否包含在备份中。这种包含操作取决于服务名称、资源类型和选择加入设置。

**按服务名称选择**  
当您在资源选择中仅指定服务名称时，备份包含操作取决于底层资源类型的选择加入设置。例如，使用 `arn:aws:ec2:*`，只有启用 EC2 资源类型的选择加入设置后，EC2 实例才会包含在备份中。

**按资源类型选择**  
如果您直接使用资源类型指定资源选择，那么无论该特定服务的选择加入设置如何，它都将包含在备份中。例如，使用 `arn:aws:ec2:::instance/*`，无论选择加入设置如何，系统都将备份 EC2 实例。

**共享资源类型**  
当多个资源共享相同的资源类型时，您需要启用特定资源类型的选择加入设置才能启动备份。

**Example**  
Aurora 和 RDS 集群共享 ARN 格式：`arn:aws:rds:::cluster:*`。要备份 Aurora 数据库，您必须启用 Aurora 的选择加入设置。  
FSx 对 FSx 于 OpenZFS，则共享 ARN 格式。`arn:aws:fsx:::file-system/*`启用相应的选择加入设置才能备份这些文件系统。

## 使用 JSON 定义备份计划资源分配
<a name="backup-resource-json"></a>

您可以在 JSON 文档中定义资源分配。

您可以指定条件、标签或资源来定义备份计划中将包含的内容。有关帮助您确定要包含哪些参数的更多信息，请参阅 [https://docs.aws.amazon.com/aws-backup/latest/devguide/API_BackupSelection.html#Backup-Type-BackupSelection-ListOfTags](https://docs.aws.amazon.com/aws-backup/latest/devguide/API_BackupSelection.html#Backup-Type-BackupSelection-ListOfTags)。

此示例资源分配将所有 Amazon EC2 实例分配给备份计划*BACKUP-PLAN-ID*：

```
{
  "BackupPlanId":"BACKUP-PLAN-ID",
  "BackupSelection":{
    "SelectionName":"resources-list-selection", 
    "IamRoleArn":"arn:aws:iam::ACCOUNT-ID:role/IAM-ROLE-ARN",
    "Resources":[
      "arn:aws:ec2:*:*:instance/*"
    ]
  }
}
```

假设将此 JSON 存储为 `backup-selection.json`，则您可以使用以下 CLI 命令将这些资源分配给您的备份计划：

```
aws backup create-backup-selection --cli-input-json file://PATH-TO-FILE/backup-selection.json
```

以下是资源分配示例，以及相应的 JSON 文档。为了便于您阅读此表，示例省略了字段 `"BackupPlanId"`、`"SelectionName"` 和 `"IamRoleArn"`。通配符 `*` 代表零个或多个非空格字符。

**Example 示例：选择我账户中的所有资源**  

```
{
  "BackupSelection":{
    "Resources":[
      "*"
    ]
  }
}
```

**Example 示例：选择我账户中的所有资源，但不包括 EBS 卷**  

```
{
  "BackupSelection":{
    "Resources":[
      "*"
    ],
    "NotResources":[
      "arn:aws:ec2:*:*:volume/*"
    ]
  }
}
```

**Example 示例：选择我账户中带 "backup":"true" 标签的所有资源，但不包括 EBS 卷**  

```
{
  "BackupSelection":{
    "Resources":[
      "*"
    ],
    "NotResources":[
      "arn:aws:ec2:*:*:volume/*"
    ],
    "Conditions":{
      "StringEquals":[
        {
          "ConditionKey":"aws:ResourceTag/backup",
          "ConditionValue":"true"
        }
      ]
    }
  }
}
```

**重要**  
RDS、Aurora、Neptune 和 Doc ARNs umentDB 始于。`arn:aws:rds:`如果您不打算包含所有这些类型，可使用标签和条件运算符来细化您的选择。

**Example 示例：选择所有同时带 "backup":"true" 和 "stage":"prod" 标签的 EBS 卷和 RDS DB 实例**  
布尔算术与 IAM 策略中的算术类似，"Resources" 中的策略使用布尔 OR 组合，而 `"Conditions"` 中的策略使用布尔 AND 组合。  
`"Resources"` 表达式 `"arn:aws:rds:*:*:db:*"` 仅选择 RDS DB 实例，因为没有相应的 Aurora、Neptune 或 DocumentDB 资源。  

```
{
  "BackupSelection":{
    "Resources":[
      "arn:aws:ec2:*:*:volume/*",
      "arn:aws:rds:*:*:db:*"
    ],
    "Conditions":{
      "StringEquals":[
        {
          "ConditionKey":"aws:ResourceTag/backup",
          "ConditionValue":"true"
        },
        {
          "ConditionKey":"aws:ResourceTag/stage",
          "ConditionValue":"prod"
        }
      ]
    }
  }
}
```

**Example 示例：选择所有带 "backup":"true" 标签但不带 "stage":"test" 标签的 EBS 卷和 RDS 实例**  

```
{
  "BackupSelection":{
    "Resources":[
      "arn:aws:ec2:*:*:volume/*",
      "arn:aws:rds:*:*:db:*"
    ],
    "Conditions":{
      "StringEquals":[
        {
          "ConditionKey":"aws:ResourceTag/backup",
          "ConditionValue":"true"
        }
      ],
      "StringNotEquals":[
        {
          "ConditionKey":"aws:ResourceTag/stage",
          "ConditionValue":"test"
        }
      ]
    }
  }
}
```

**Example 示例：选择所有带 "key1" 标签、值以 "include" 开头但不以 "key2" 开头、值包含 "exclude" 一词的资源**  
您可以在字符串的开头、结尾和中间使用通配符字符。请注意，上述示例在 `include*` 和 `*exclude*` 中使用了通配符 (\$1)。您也可以在字符串中间使用通配符，如前面的示例所示，`arn:aws:rds:*:*:db:*`。  

```
{
  "BackupSelection":{
    "Resources":[
      "*"
    ],
    "Conditions":{
      "StringLike":[
        {
          "ConditionKey":"aws:ResourceTag/key1",
          "ConditionValue":"include*"
        }
      ],
      "StringNotLike":[
        {
          "ConditionKey":"aws:ResourceTag/key2",
          "ConditionValue":"*exclude*"
        }
      ]
    }
  }
}
```

**Example 示例：选择"backup":"true"除 FSx 文件系统和 RDS、Aurora、Neptune 和 DocumentDB 资源之外的所有标有标签的资源**  
`NotResources` 中的项目使用布尔 OR 进行组合。  

```
{
  "BackupSelection":{
    "Resources":[
      "*"
    ],
    "NotResources":[
      "arn:aws:fsx:*",
      "arn:aws:rds:*"
    ],
    "Conditions":{
      "StringEquals":[
        {
          "ConditionKey":"aws:ResourceTag/backup",
          "ConditionValue":"true"
        }
      ]
    }
  }
}
```

**Example 示例：选择所有带 "backup" 标签和任意值的资源**  

```
{
  "BackupSelection":{
    "Resources":[
      "*"
    ],
    "Conditions":{
      "StringLike":[
        {
          "ConditionKey":"aws:ResourceTag/backup",
          "ConditionValue":"*"
        }
      ]
    }
  }
}
```

**Example 示例：选择所有 FSx 文件系统、Aurora 集群"my-aurora-cluster"和所有标记为的资源"backup":"true"，但标记为的资源除外 "stage":"test"**  

```
{
  "BackupSelection":{
    "Resources":[
      "arn:aws:fsx:*",
      "arn:aws:rds:*:*:cluster:my-aurora-cluster"
    ],
    "ListOfTags":[
      {
        "ConditionType":"StringEquals",
        "ConditionKey":"backup",
        "ConditionValue":"true"
      }
    ],
    "Conditions":{
      "StringNotEquals":[
        {
          "ConditionKey":"aws:ResourceTag/stage",
          "ConditionValue":"test"
        }
      ]
    }
  }
}
```

**Example 示例：选择所有带 `"backup":"true"` 标签的资源，但带 `"stage":"test"` 标签的 EBS 卷除外**  
使用两个 CLI 命令创建两个选项来选择这组资源。第一个选项适用于除了 EBS 卷之外的所有资源。第二个选项适用于 EBS 卷。  

```
{
  "BackupSelection":{
    "Resources":[
      "*"
    ],
    "NotResources":[
      "arn:aws:ec2:*:*:volume/*"
    ],
    "Conditions":{
      "StringEquals":[
        {
          "ConditionKey":"aws:ResourceTag/backup",
          "ConditionValue":"true"
        }
      ]
    }
  }
}
```

```
{
  "BackupSelection":{
    "Resources":[
      "arn:aws:ec2:*:*:volume/*"
    ],
    "Conditions":{
      "StringEquals":[
        {
          "ConditionKey":"aws:ResourceTag/backup",
          "ConditionValue":"true"
        }
      ],
      "StringNotEquals":[
        {
          "ConditionKey":"aws:ResourceTag/stage",
          "ConditionValue":"test"
        }
      ]
    }
  }
}
```