如何解决在尝试删除 Amazon EC2 备份时出现“此镜像由 AWS Backup 管理,无法通过 EC2 API 删除。要删除此镜像,请使用 AWS Backup API、CLI 或控制台”错误的问题?

2 分钟阅读
0

我想删除 AWS Backup 创建的亚马逊云机器镜像(AMI),但出现了一条错误消息。

简短描述

直接从 Amazon Elastic Compute Cloud (Amazon EC2) 控制台注销 AWS Backup 创建的 AMI 时,您收到了一条错误消息,消息内容类似于:

“注销 AMI ami-01234sample 失败。API 错误: “此镜像由 AWS Backup 管理,无法通过 EC2 API 删除。要删除此镜像,请使用 AWS Backup API、CLI 或控制台。”

AWS Backup 创建的 AMI 的标签键为 aws:backup:source-resource。您可以使用 Amazon EC2 控制台在 AMI 上查看此标签。任何带有标签键 aws:backup:source-resource 的 AMI 均无法使用 Amazon EC2 控制台或 Amazon EC2 API 删除。您必须使用 AWS Backup 控制台或 AWS Backup API 删除 AWS Backup 创建的 AMI。

解决方法

要删除 AWS Backup 创建的 AMI,您必须删除文件库中的恢复点。

您可以使用 AWS Backup 控制台或 AWS 命令行界面(AWS CLI)来删除恢复点。删除恢复点会注销 AMI 并自动删除与该 AMI 关联的 Amazon Elastic Block Store (Amazon EBS) 快照。

使用 AWS Backup 控制台删除 Amazon EC2 恢复点

要使用控制台手动删除恢复点,请完成以下步骤:

  1. 打开 AWS Backup 控制台。
  2. 在导航窗格中,选择备份保管库
  3. 选择包含 Amazon EC2 备份的备份保管库。然后,选择要删除的 AMI。
  4. 选择操作,然后选择删除

使用 AWS CLI 删除过期的恢复点

**注意:**如果运行 AWS 命令行界面(AWS CLI)命令时出现错误,请确保您使用的是最新版本的 AWS CLI

要使用 AWS CLI 手动删除保管库中的单个恢复点,请运行以下示例命令:

aws backup delete-recovery-point --backup-vault-name <value> --recovery-point-arn <value>

要使用 AWS CLI 手动删除保管库中的多个恢复点,请先运行 list-recovery-points-by-backup-vault 命令来列出恢复点:

$ aws backup list-recovery-points-by-backup-vault  --backup-vault-name VAULT_NAME --region REGION_ID --output json --query 'RecoveryPoints[?Status == `EXPIRED`].[RecoveryPointArn]' | jq -r '.[] | "--recovery-point-arn '\\\"'" + .[0] + "'\\\"'" + .[1]'

然后,运行以下串联命令(包括 delete-recovery-point)删除恢复点:

$ aws backup list-recovery-points-by-backup-vault  --backup-vault-name VAULT_NAME --region REGION_ID --output json --query 'RecoveryPoints[?Status == `EXPIRED`].[RecoveryPointArn]' | jq -r '.[] | "--recovery-point-arn '\\\"'" + .[0] + "'\\\"'" + .[1]' |  xargs --verbose -L1 aws backup delete-recovery-point --backup-vault-name VAULT_NAME --region REGION_ID
AWS 官方
AWS 官方已更新 10 个月前
没有评论