我想在 AWS Backup 中使用基于标签的资源分配,但我的资源没有备份。
简短描述
AWS Backup 计划通过资源分配来确定要备份的资源。在创建基于标签的资源分配时,资源可能由于以下原因未被纳入备份:
- 标签包含多余空格或错误名称
- 标签大小写与资源分配不匹配
- Amazon Aurora 集群标签配置有误
- Amazon Elastic Compute Cloud (Amazon EC2) 实例或 Amazon Elastic Block Store (Amazon EBS) 卷的标签不正确
- Amazon Simple Storage Service (Amazon S3) 标签存在于对象级别,而非存储桶级别
解决方法
**注意:**如果您在运行 AWS 命令行界面 (AWS CLI) 命令时收到错误,请参阅 AWS CLI 错误故障排除。此外,请确保您使用的是最新版本的 AWS CLI。
要解决 AWS Backup 中基于标签的资源分配问题,请完成以下检查:
检查是否存在多余空格或错误标签名称
标签必须与 AWS Backup 中的资源分配名称完全一致。多余空格和错误标签名称都会导致资源无法正确备份。
检查标签中是否存在多余空格
如果标签与 AWS Backup 中的资源分配名称不完全一致,请检查标签中是否存在多余空格。运行 get-backup-selection 命令:
aws backup get-backup-selection \
--backup-plan-id "your-backup-plan-id" \
--selection-id "your-selection-id"
**注意:**标签中的多余空格在 AWS 管理控制台中难以察觉。请使用 AWS CLI 识别这些标签错误。
输出示例:
{
"ListOfTags": [
{
"ConditionType": "STRINGEQUALS",
"ConditionKey": "backup ",
"ConditionValue": "Yes"
}
]
}
**注意:**上述输出中,backup 后方包含多余空格。这些多余空格会导致资源无法匹配标签,进而无法备份资源。
如果您的输出中包含多余空格,请移除所有尾随空格。但是,您无法编辑现有的资源分配。您必须删除资源分配并创建新的资源分配。
检查标签名称
标签区分大小写,且标签键和值必须遵循特定的命名最佳实践。
要检查标签值的大小写差异,请运行 describe-tags 命令:
aws ec2 describe-tags \
--query "Tags[?contains(to_lower(Key), 'backup')].Key" \
--output text | tr '\t' '\n' | sort | uniq -c
输出示例:
5 backup
3 Backup
2 BACKUP
1 BackUp
7 back-up
1 backup-required
**注意:**上述输出中,资源中的 backup 标签键存在六种不同的名称变体。这可能会导致 AWS Backup 选择问题。
确保标签与资源分配名称完全一致。例如,您使用键值对 Backup=Yes 创建了一个标签,但您的资源分配会查找 backup=yes。在这种情况下,由于大小写不一致,AWS Backup 不会将资源分配给备份计划。
有关详细信息,请参阅标签命名最佳实践。
检查 Aurora 集群标签
确保为 Aurora 集群(而非写入器或读取器实例)添加标签。为单个写入器或读取器实例添加标签不适用于集群备份。
要查看 Aurora 集群上的当前标签,请运行 list-tags-for-resource 命令:
aws rds list-tags-for-resource \
--resource-name arn:aws:rds:us-east-1:123456789012:cluster:your-cluster-name
如果您的 Aurora 写入器或读取器实例中存在错误标签,请运行 remove-tags-from-resource 命令以删除这些资源中的标签:
aws rds remove-tags-from-resource \
--resource-name arn:aws:rds:us-east-1:123456789012:db:my-aurora-writer \
--tag-keys backup
如果您的 Aurora 集群未添加标签,请运行 add-tags-to-resource 命令以添加标签:
aws rds add-tags-to-resource
--resource name arn:aws:rds:us-east-1:111222333444:cluster:AWS-EXAMPLE
--tags "[{\"Key\": \"backup\",\"Value\": \"yes\"}]"
检查 EC2 实例或 EBS 卷标签
验证 Amazon EC2 实例或 Amazon EBS 卷的标签是否正确。
运行 describe-tags 命令来检查标签值为 backup=yes 的资源。
aws ec2 describe-tags
--filters "Name=backup,Values=yes"
**注意:**上述命令适用于 EC2 实例和 EBS 卷。
如果存在错误标签,则运行 delete-tags 命令移除 EC2 实例中的错误标签:
aws ec2 delete-tags \
--resources i-1234567890abcdef0 \
--tags Key=Backup
如果您的 EC2 实例或 EBS 卷需要添加标签,请运行 create-tags 命令添加标签:
aws ec2 create-tags
--resources i-1234567890abcdef0 vol-1234567890abcdef8
--tags Key=backup,Value=yes
检查 S3 存储桶级别的标签
确保在 Amazon S3 存储桶级别(而非对象级别)应用标签。AWS Backup 不支持根据对象的单个标签选择要备份的对象。
要检查您当前的 S3 存储桶标签,请运行 get-bucket-tagging 命令:
aws s3api get-bucket-tagging —bucket my-bucket-name
要添加 S3 存储桶级别的标签,请运行 put-bucket-tagging 命令
aws s3api put-bucket-tagging
--bucket DOC-EXAMPLE-BUCKET
--tagging 'TagSet=[{Key=backup,Value=yes}]'
相关信息
什么是标签?
在资源浏览器控制台中管理资源