跳至内容

如何对 AWS Backup 中基于标签的资源分配问题进行故障排除?

2 分钟阅读
0

我想在 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}]'

相关信息

什么是标签?

在资源浏览器控制台中管理资源

AWS 官方已更新 1 年前