本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用分配资源 AWS CLI
您可以在JSON文档中定义资源分配。
您可以指定条件、标签或资源来定义备份计划中将包含的内容。有关帮助您确定要包含哪些参数的更多信息,请参阅BackupSelection
。
此示例资源分配将所有 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"
。通配符 *
代表零个或多个非空格字符。
例 示例:选择我账户中的所有资源
{ "BackupSelection":{ "Resources":[ "*" ] } }
例 示例:选择我账户中的所有资源,但不包括EBS卷
{ "BackupSelection":{ "Resources":[ "*" ], "NotResources":[ "arn:aws:ec2:*:*:volume/*" ] } }
例 示例:选择所有标有标签的资源 "backup":"true",但不包括EBS交易量
{ "BackupSelection":{ "Resources":[ "*" ], "NotResources":[ "arn:aws:ec2:*:*:volume/*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" } ] } } }
例 示例:选择所有EBS卷和两者都标记的RDS数据库实例 "backup":"true" 以及 "stage":"prod"
布尔算术与IAM策略中的算术类似,但在 "Resources" 使用布尔值 OR 组合,"Conditions"
将中的值与布尔值结合使用AND。
该"Resources"
表达式"arn:aws:rds:*:*:db:*"
仅选择RDS数据库实例,因为没有相应的 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" } ] } } }
例 示例:选择所有标记为的EBS卷和RDS实例 "backup":"true" 但不是 "stage":"test"
{ "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" } ] } } }
例 示例:选择所有标有标签的资源 "key1" 还有一个以开头的值 "include" 但不是 "key2" 和包含单词的值 "exclude"
您可以在字符串的开头、结尾和中间使用通配符字符。请注意,上述示例在 include*
和 *exclude*
中使用了通配符 (*)。您也可以在字符串中间使用通配符,如前面的示例所示,arn:aws:rds:*:*:db:*
。
{ "BackupSelection":{ "Resources":[ "*" ], "Conditions":{ "StringLike":[ { "ConditionKey":"aws:ResourceTag/key1", "ConditionValue":"include*" } ], "StringNotLike":[ { "ConditionKey":"aws:ResourceTag/key2", "ConditionValue":"*exclude*" } ] } } }
例 示例:选择所有标有标签的资源 "backup":"true" FSx文件系统以及 Aurora RDS、Neptune 和 DocumentDB 资源除外
NotResources
中的项目使用布尔 OR 进行组合。
{ "BackupSelection":{ "Resources":[ "*" ], "NotResources":[ "arn:aws:fsx:*", "arn:aws:rds:*" ], "Conditions":{ "StringEquals":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"true" } ] } } }
例 示例:选择所有标有标签的资源 "backup" 以及任何值
{ "BackupSelection":{ "Resources":[ "*" ], "Conditions":{ "StringLike":[ { "ConditionKey":"aws:ResourceTag/backup", "ConditionValue":"*" } ] } } }
例 示例:选择所有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" } ] } } }
例 示例:选择所有标有标签的资源,但标有标签的EBS卷"backup":"true"
除外 "stage":"test"
使用两个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" } ] } } }