【问题标题】:Does terraform support AWS BACKUP restore feature?terraform 是否支持 AWS BACKUP 还原功能?
【发布时间】:2020-08-04 14:16:57
【问题描述】:
【问题讨论】:
标签:
terraform
aws-cli
terraform-provider-aws
aws-backup
【解决方案1】:
Terraform 的执行模型旨在将预期状态的声明性描述转换为命令式操作以自动达到该状态,因此它的模型并不真正支持“异常”过程,例如恢复备份。
但是,您可以开发一个流程来恢复备份与 Terraform 一起使用 AWS 控制台、AWS CLI 或 API 在您自己的自动化中完成主要的恢复操作,然后在之后通知 Terraform它应该通过状态操作命令使用恢复的对象。
例如,如果您有一个由 Terraform 使用 aws_ebs_volume 资源管理的 EBS 卷,您还可以使用 Terraform 为该卷配置 AWS 备份计划,然后将根据您的计划自动创建备份。
在您现有卷丢失或损坏并且您想要恢复备份的特殊情况下,响应事件的人员可以遵循以下过程:
- 使用 AWS 控制台、AWS CLI 或您自己设计的某些软件使用 AWS Backup API 创建 AWS Backup 恢复作业。
- 备份作业完成后,请咨询
CreatedResourceARN 以查找通过恢复备份创建的新对象的 ID。对于 EBS 卷,这将是 :volume/ 分隔符之后的最后一部分。
-
告诉 Terraform “忘记”现在已被破坏或损坏的现有 EBS 卷对象:
terraform state rm aws_ebs_volume.example
-
告诉 Terraform 将通过恢复备份创建的对象导入为与 Terraform 资源关联的新远程对象:
terraform import aws_ebs_volume.example vol-049df61146c4d7901
如果您的旧 EBS 卷仍然存在但已损坏或以其他方式损坏,最后一步是找到并手动销毁它的剩余部分,因为 Terraform 不再管理它,因此它会留在永远的地方。
此过程完成后,Terraform 将认为新对象是由该资源管理的对象,并且您可以正常使用 Terraform,该资源继续前进。相同的原则适用于 AWS Backup 支持的任何对象类型,只要它们在 AWS 提供程序中具有支持 terraform import 的资源类型。