Amazon web services Terraform-AWS-如何防止删除EBS卷?
我对Terraform还比较陌生,所以我希望这个问题是我做错了 我有一些实例需要附加单独的EBS卷。这些被定义为三个独立的地形资源:Amazon web services Terraform-AWS-如何防止删除EBS卷?,amazon-web-services,volume,terraform,terminate,amazon-ebs,Amazon Web Services,Volume,Terraform,Terminate,Amazon Ebs,我对Terraform还比较陌生,所以我希望这个问题是我做错了 我有一些实例需要附加单独的EBS卷。这些被定义为三个独立的地形资源: aws_instance aws_ebs_volume aws_volume_attachment 当实例启动时,AWS控制台内的卷表示它们具有“终止时删除”保护,但Terraform仍会销毁它们: 如果在aws_实例资源定义中使用“块_设备”映射,则可以防止其终止: 但此选项不显示在ebs_卷资源中: 如何阻止Terraform删除我的EBS卷 我尝试过
aws_instance
aws_ebs_volume
aws_volume_attachment
当实例启动时,AWS控制台内的卷表示它们具有“终止时删除”保护,但Terraform仍会销毁它们:
如果在aws_实例资源定义中使用“块_设备”映射,则可以防止其终止:
但此选项不显示在ebs_卷资源中:
如何阻止Terraform删除我的EBS卷
我尝试过这样做,但它只是停止terraform destroy作业的运行:
lifecycle = {
prevent_destroy = true
}
谢谢一般来说,
地形破坏
将破坏所有资源。如果您希望只销毁特定资源,可以使用例如:terraform destroy-target=aws\u instance.some\u name
对于您的EBS卷示例,您还必须销毁
aws\u volume\u附件
资源。它正按照文档所述执行,因此Terraform不允许Terraform销毁
,如果您需要这样做,那么我建议将这些资源从其他资源转移到它们自己的terraform目录中
防破坏(bool)-此标志提供额外的保护,防止
对给定资源的破坏。当设置为true时,任何
包含销毁此资源的计划将返回错误
消息。
如果要防止意外删除ec2实例,可以在“创建ec2实例资源”部分使用以下命令 禁用api\u termination=“true” 我已经验证过几次了,它工作正常
快乐学习 请显示您的
terraform计划…
输出。您好-您想要创建或销毁计划,还是两者都要?不管怎样,它们都是相当大的输出,包含大量的业务数据(标记、名称标识符),因此我正试图从中编辑所有业务可识别数据。请容忍我。如果您只想了解特定部分,请告诉我。请显示aws_实例销毁计划输出。在这里->谢谢您是否将生命周期元参数放入aws_ebs_卷
资源块?您可以通过链接到文档来改进此答案。此外,我的快速研究表明,Terraform中存在开放的bug,这可能导致该参数无法按预期工作——这可能也是应该解决的问题。